def stop_working_job(request): """停止正在进行中的转换的工作 """ # 获取url操作 worker_id = request.matchdict['id'] thread = request.matchdict['thread'] thread_pid = request.matchdict['pid'] # pid为-1则不能杀 if thread_pid == -1: jobs = ztq_core.get_job_state(worker_id) task = jobs[thread] task['runtime']['reason'] = "manual stopped" task['runtime']['end'] = int(time.time()) ztq_core.push_runtime_error(task['runtime']['queue'], task) del jobs[thread] return HTTPFound(location='/workerstatus') kill_command = { 'command': 'kill', 'timestamp': int(time.time()), 'pid': thread_pid } cmd_queue = ztq_core.get_command_queue(worker_id) # 避免同时发送多条结束命令 if cmd_queue: for command in cmd_queue: if command.get('pid', None) == kill_command['pid']: return HTTPFound(location='/workerstatus') cmd_queue.push(kill_command) return HTTPFound(location='/workerstatus')
def stop_working_job(request): """停止正在进行中的转换的工作 """ # 获取url操作 worker_id = request.matchdict['id'] thread = request.matchdict['thread'] thread_pid = request.matchdict['pid'] # pid为-1则不能杀 if thread_pid == '-1': jobs = ztq_core.get_job_state(worker_id) task = jobs[thread] task['runtime']['reason'] = "manual stopped" task['runtime']['end'] = int( time.time() ) ztq_core.push_runtime_error(task['runtime']['queue'], task) del jobs[thread] return HTTPFound(location = '/workerstatus') kill_command = { 'command':'kill', 'timestamp':int(time.time()), 'pid': thread_pid } cmd_queue = ztq_core.get_command_queue(worker_id) # 避免同时发送多条结束命令 if cmd_queue: for command in cmd_queue: if command.get('pid', None) == kill_command['pid']: return HTTPFound(location = '/workerstatus') cmd_queue.push(kill_command) return HTTPFound(location = '/workerstatus')
def start_job(self, task): self.start_job_time = int(time.time()) task['runtime'].update({ 'worker': safe_get_host('server', 'alias'), 'thread': self.getName(), 'start': self.start_job_time, }) # 记录当前在做什么 task['process'] = {'ident': self.ident} thread_context.job = task try: self.run_task = ztq_core.task_registry[task['func']] # started report report_job(comment='start the job') try: self.run_task(*task['args'], **task['kw']) except TypeError: # keyword must string is a bug in python if sys.version[:5] < '2.6.5': raise Exception, ("We not supported %s version of python," "Please update it to 2.6.5 or later." % sys.version[:5]) else: raise if task.get('callback', None): callback_args = task.get('callback_args', ()) callback_kw = task.get('callback_kw', {}) ztq_core.push_task(task['callback'], *callback_args, **callback_kw) except Exception, e: reason = traceback.format_exception(*sys.exc_info()) # 将错误信息记录到服务器 return_code = str(e.args[0]) if len(e.args) > 1 else 300 task['runtime']['return'] = return_code task['runtime']['reason'] = reason[-11:] task['runtime']['end'] = int(time.time()) ztq_core.push_runtime_error(self.queue_name, task) # 错误回调 if task.get('fcallback', None): callback_args = task.get('fcallback_args', ()) callback_kw = task.get('fcallback_kw', {}) callback_kw['return_code'] = return_code callback_kw['return_msg'] = reason[-1] ztq_core.push_task(task['fcallback'], *callback_args, **callback_kw) # 在终端打印错误信息 #reason.insert(0, str(datetime.datetime.today()) + '\n') logger.error(''.join(reason))
def start_job(self, task): self.start_job_time = int(time.time()) task['runtime'].update({'worker': safe_get_host('server', 'alias'), 'thread': self.getName(), 'start': self.start_job_time, }) # 记录当前在做什么 task['process'] = {'ident':self.ident} thread_context.job = task try: self.run_task = ztq_core.task_registry[task['func']] # started report report_job(comment='start the job') try: self.run_task(*task['args'], **task['kw']) except TypeError: # keyword must string is a bug in python if sys.version[:5] < '2.6.5': raise Exception,("We not supported %s version of python," "Please update it to 2.6.5 or later."%sys.version[:5]) else: raise if task.get('callback', None): callback_args = task.get('callback_args', ()) callback_kw = task.get('callback_kw', {}) ztq_core.push_task(task['callback'], *callback_args, **callback_kw) except Exception, e: reason = traceback.format_exception(*sys.exc_info()) # 将错误信息记录到服务器 return_code = str(e.args[0]) if len(e.args) > 1 else 300 task['runtime']['return'] = return_code task['runtime']['reason'] = reason[-11:] task['runtime']['end'] = int( time.time() ) ztq_core.push_runtime_error(self.queue_name, task) # 错误回调 if task.get('fcallback', None): callback_args = task.get('fcallback_args', ()) callback_kw = task.get('fcallback_kw', {}) callback_kw['return_code'] = return_code callback_kw['return_msg'] = reason[-1] ztq_core.push_task(task['fcallback'], *callback_args, **callback_kw) # 在终端打印错误信息 #reason.insert(0, str(datetime.datetime.today()) + '\n') logger.error(''.join(reason))
def start_job(self, task): self.start_job_time = int(time.time()) task['runtime'].update({'worker': CONFIG['server']['alias'], 'thread': self.getName(), 'start': self.start_job_time, }) # 记录当前在做什么 task['process'] = {'ident':self.ident} thread_context.job = task try: # started report report_job(comment='start the job') self.run_task = ztq_core.task_registry[task['func']] self.run_task(*task['args'], **task['kw']) task['runtime']['return'] = 0 task['runtime']['reason'] = 'success' if task.get('callback', None): callback_args = task.get('callback_args', ()) callback_kw = task.get('callback_kw', {}) ztq_core.push_task(task['callback'], *callback_args, **callback_kw) except Exception, e: reason = traceback.format_exception(*sys.exc_info()) # 将错误信息记录到服务器 try: return_code = str(e.args[0]) if len(e.args) > 1 else 300 except: return_code = 300 task['runtime']['return'] = return_code task['runtime']['reason'] = reason[-11:] task['runtime']['end'] = int( time.time() ) ztq_core.push_runtime_error(self.queue_name, task) # 错误回调 if task.get('fcallback', None): callback_args = task.get('fcallback_args', ()) callback_kw = task.get('fcallback_kw', {}) callback_kw['return_code'] = return_code callback_kw['return_msg'] = unicode(reason[-1], 'utf-8', 'ignore') ztq_core.push_task(task['fcallback'], *callback_args, **callback_kw) # 在终端打印错误信息 #reason.insert(0, str(datetime.datetime.today()) + '\n') logger.error(''.join(reason))