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": "取消失败"})
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)
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