示例#1
0
def cancel_spider():
    """
    功能: 取消运行爬虫
    :param: project_id: 工程id
    :return: json.dumps({"code": 200, "status": "success/e"}), e指具体抛出的异常
    """
    try:
        # 获取工程id参数
        project_id = request.form.get('project_id')
        project_name = request.form.get('project_name')
        job_instance_id = int(request.form.get('job_instance_id'))
        # 同一个项目id可能有多条执行任务记录, 因此需要获取job_instance_id来判断要取消某个项目id下的第几条执行任务
        job_execution = JobExecution.query.filter_by(
            project_id=project_id, job_instance_id=job_instance_id).first()
        agent.cancel_spider(job_execution, project_name)
        return json.dumps({"code": 200, "status": "success"})
    except Exception as e:
        return json.dumps({"code": 500, "status": "error", "msg": "取消失败"})
示例#2
0
def job_stop(project_id, job_exec_id):
    job_execution = JobExecution.query.filter_by(project_id=project_id,
                                                 id=job_exec_id).first()
    agent.cancel_spider(job_execution)
    return redirect(request.referrer, code=302)
示例#3
0
 def put(self, project_id, job_exec_id):
     job_execution = JobExecution.query.filter_by(project_id=project_id,
                                                  id=job_exec_id).first()
     if job_execution:
         agent.cancel_spider(job_execution)
         return True