def task_jobs_handler(request): """将任务调整到队头或者队尾 传入参数:http://server/taskqueues/q01/job?action=high_priority&hash_id={{job_hash_id}} """ valid_action = ('high_priority', 'low_priority', 'delete') queue_name = request.matchdict['id'] url_action = request.params.get('action', '') job_hash_id = urllib.unquote(request.params.get('hash_id').encode('utf8')) if url_action in valid_action: if url_action == 'high_priority': job_queue = ztq_core.get_task_queue(queue_name) job_queue.remove(job_hash_id) job_queue.push(job_hash_id, to_left=False) elif url_action == 'low_priority': job_queue = ztq_core.get_task_queue(queue_name) job_queue.remove(job_hash_id) job_queue.push(job_hash_id) elif url_action == 'delete': job_queue = ztq_core.get_task_queue(queue_name) job_queue.remove(job_hash_id) job_hash = ztq_core.get_task_hash(queue_name) job_hash.pop(job_hash_id) return HTTPFound(location='/taskqueues/' + queue_name) else: return Response('Invalid request')
def task_jobs_handler(request): """将任务调整到队头或者队尾 传入参数:http://server/taskqueues/q01/job?action=high_priority&hash_id={{job_hash_id}} """ valid_action = ('high_priority','low_priority', 'delete') queue_name = request.matchdict['id'] url_action = request.params.get('action','') job_hash_id = urllib.unquote(request.params.get('hash_id').encode('utf8')) if url_action in valid_action: if url_action == 'high_priority': job_queue = ztq_core.get_task_queue(queue_name) job_queue.remove(job_hash_id) job_queue.push(job_hash_id, to_left=False) elif url_action == 'low_priority': job_queue = ztq_core.get_task_queue(queue_name) job_queue.remove(job_hash_id) job_queue.push(job_hash_id) elif url_action == 'delete': job_queue = ztq_core.get_task_queue(queue_name) job_queue.remove(job_hash_id) job_hash = ztq_core.get_task_hash(queue_name) job_hash.pop(job_hash_id) return HTTPFound(location = '/taskqueues/'+queue_name) else: return Response('Invalid request')
def get_queues_jobs(queue_name): queue = ztq_core.get_task_queue(queue_name) for task_job_hash in queue.reverse(): task_job = ztq_core.get_task_hash(queue_name).get(task_job_hash) tmp_job={} tmp_job['_queue_name'] = queue_name tmp_job['_id'] = urllib.quote(task_job_hash) #tmp_job['_ori'] = task_job tmp_job['_detail'] = pprint.pformat(task_job) tmp_job['_created'] = datetime.datetime.fromtimestamp(task_job['runtime'].get('create', 0)) yield tmp_job
def get_queues_jobs(queue_name): queue = ztq_core.get_task_queue(queue_name) for task_job_hash in queue.reverse(): task_job = ztq_core.get_task_hash(queue_name).get(task_job_hash) tmp_job = {} tmp_job['_queue_name'] = queue_name tmp_job['_id'] = urllib.quote(task_job_hash) #tmp_job['_ori'] = task_job tmp_job['_detail'] = pprint.pformat(task_job) tmp_job['_created'] = datetime.datetime.fromtimestamp( task_job['runtime'].get('create', 0)) yield tmp_job
def get_taskqueues_list(): # 队列情况列表 dispatcher_config = ztq_core.get_dispatcher_config() queue_weight = dispatcher_config['queue_weight'] queues_list = ztq_core.get_queue_config() # 排序 sort_queue_name = {} for queue_name, queue_config in queues_list.items(): sort_queue_name[queue_name] = len(ztq_core.get_error_queue(queue_name)) for queue_name in sorted(sort_queue_name, key=lambda x: sort_queue_name[x], reverse=True): task_queue = {} task_queue['name'] = queue_name #task_queue['tags'] = queue_config.get('tags',()) queue = ztq_core.get_task_queue(queue_name) # 任务数/错误数 task_queue['length'] = len(queue) task_queue['error_length'] = sort_queue_name[queue_name] #任务首个时间 task_queue['error_end'] = task_queue['first'] = '' first_job = queue[0] first_job = ztq_core.get_task_hash(queue_name).get(first_job) if first_job: task_queue['first'] = datetime.datetime.fromtimestamp( first_job['runtime'].get('create', 0)) #错误最末一个的时间 error_first_job = ztq_core.get_error_queue(queue_name)[0] error_first_job = ztq_core.get_error_hash(queue_name).get( error_first_job) if error_first_job: task_queue['error_end'] = datetime.datetime.fromtimestamp( error_first_job['runtime'].get('create', 0)) task_queue['weight'] = queue_weight.get(queue_name, 0) # 获取worker工作线程配置 workers_config = ztq_core.get_worker_config() task_queue['from_right'] = True for worker_name, worker_config in workers_config.items(): task_queue['workers'] = [] for config in worker_config.get(queue_name, []): task_queue['workers'].append( [worker_name + ':', config['interval']]) if 'from_right' in config: task_queue['from_right'] = config['from_right'] task_queue['buffer_length'] = len( ztq_core.get_buffer_queue(queue_name)) yield task_queue
def get_taskqueues_list(): # 队列情况列表 dispatcher_config = ztq_core.get_dispatcher_config() queue_weight = dispatcher_config['queue_weight'] queues_list = ztq_core.get_queue_config() # 排序 sort_queue_name = {} for queue_name, queue_config in queues_list.items(): sort_queue_name[queue_name] = len(ztq_core.get_error_queue(queue_name)) for queue_name in sorted(sort_queue_name, key=lambda x: sort_queue_name[x], reverse=True): task_queue = {} task_queue['name'] = queue_name #task_queue['tags'] = queue_config.get('tags',()) queue = ztq_core.get_task_queue(queue_name) # 任务数/错误数 task_queue['length'] = len(queue) task_queue['error_length'] = sort_queue_name[queue_name] #任务首个时间 task_queue['error_end'] = task_queue['first'] = '' first_job = queue[0] first_job= ztq_core.get_task_hash(queue_name).get(first_job) if first_job: task_queue['first'] = datetime.datetime.fromtimestamp(first_job['runtime'].get('create', 0)) #错误最末一个的时间 error_first_job = ztq_core.get_error_queue(queue_name)[0] error_first_job = ztq_core.get_error_hash(queue_name).get(error_first_job) if error_first_job: task_queue['error_end'] = datetime.datetime.fromtimestamp(error_first_job['runtime'].get('create', 0)) task_queue['weight'] = queue_weight.get(queue_name, 0) # 获取worker工作线程配置 workers_config = ztq_core.get_worker_config() task_queue['from_right'] = True for worker_name,worker_config in workers_config.items(): task_queue['workers'] = [] for config in worker_config.get(queue_name,[]): task_queue['workers'].append([worker_name+':', config['interval']]) if 'from_right' in config: task_queue['from_right'] = config['from_right'] task_queue['buffer_length'] = len(ztq_core.get_buffer_queue(queue_name)) yield task_queue