def dispatch(): """根据调度参数进行转换器和队列的调度 """ #获取调度参数 dispatcher_config = ztq_core.get_dispatcher_config() worker_weight = dispatcher_config['worker_weight'] if not worker_weight: return queue_weight = dispatcher_config['queue_weight'] worker_list = ztq_core.get_all_worker() #生成新的转换器工作线程配置 if worker_list: gen_worker_config(worker_weight, queue_weight, worker_list)
def config_worker(request): """对worker进行配置管理 """ url_action = request.params.get('action', '') dispatcher_config = ztq_core.get_dispatcher_config() worker_weight = dispatcher_config['worker_weight'] # 获取用户请求操作 worker_id = request.matchdict['id'] # 根据操作类型进行权重调整, if url_action == 'stop_worker': #停止worker worker_weight[worker_id] = 0 elif url_action == 'enable': #启用worker worker_weight[worker_id] = 5 elif url_action == 'worker_down': #降低worker权重 worker_weight[worker_id] -= 1 if worker_weight[worker_id] < 1: worker_weight[worker_id] = 1 elif url_action == 'worker_up': #提升worker权重 worker_weight[worker_id] += 1 if worker_weight[worker_id] > 10: worker_weight[worker_id] = 10 elif url_action == 'delete': #删除还没启用的worker,删除操作不会导致调度配置更新 if worker_id in worker_weight: # 没有启用的情况 worker_weight.pop(worker_id) workers_dict = ztq_core.get_worker_state() del workers_dict[worker_id] worker_job = ztq_core.get_job_state(worker_id) for job_name, job_status in worker_job.items(): del worker_job[job_name] ztq_core.set_dispatcher_config(dispatcher_config) return HTTPFound(location='/workerstatus') elif url_action == 'update': # 发报告指令到各命令队列让worker报告自身状态 worker_list = ztq_core.get_all_worker() for worker_name in worker_list: if worker_name == worker_id: utils.send_command(worker_name, 'report') time.sleep(1) return HTTPFound(location='/workerstatus') # 更新调度策略并进行调度 ztq_core.set_dispatcher_config(dispatcher_config) utils.dispatch() return HTTPFound(location='/workerstatus')
def config_worker(request): """对worker进行配置管理 """ url_action = request.params.get('action','') dispatcher_config = ztq_core.get_dispatcher_config() worker_weight = dispatcher_config['worker_weight'] # 获取用户请求操作 worker_id = request.matchdict['id'] # 根据操作类型进行权重调整, if url_action == 'stop_worker': #停止worker worker_weight[worker_id] = 0 elif url_action == 'enable': #启用worker worker_weight[worker_id] = 5 elif url_action == 'worker_down' : #降低worker权重 worker_weight[worker_id] -= 1 if worker_weight[worker_id] < 1: worker_weight[worker_id] = 1 elif url_action == 'worker_up' : #提升worker权重 worker_weight[worker_id] += 1 if worker_weight[worker_id] >10: worker_weight[worker_id] = 10 elif url_action == 'delete': #删除还没启用的worker,删除操作不会导致调度配置更新 if worker_id in worker_weight: # 没有启用的情况 worker_weight.pop(worker_id) workers_dict = ztq_core.get_worker_state() del workers_dict[worker_id] worker_job = ztq_core.get_job_state(worker_id) for job_name, job_status in worker_job.items(): del worker_job[job_name] ztq_core.set_dispatcher_config(dispatcher_config) return HTTPFound(location = '/workerstatus') elif url_action == 'update': # 发报告指令到各命令队列让worker报告自身状态 worker_list = ztq_core.get_all_worker() for worker_name in worker_list: if worker_name == worker_id: utils.send_command(worker_name, 'report') time.sleep(1) return HTTPFound(location = '/workerstatus') # 更新调度策略并进行调度 ztq_core.set_dispatcher_config(dispatcher_config) utils.dispatch() return HTTPFound(location = '/workerstatus')
def config_worker(request): """对worker进行配置管理 """ url_action = request.params.get('action', '') # 获取用户请求操作 worker_id = request.matchdict['id'] if url_action == 'delete': #删除还没启用的worker,删除操作不会导致调度配置更新 workers_dict = ztq_core.get_worker_state() del workers_dict[worker_id] worker_job = ztq_core.get_job_state(worker_id) for job_name, job_status in worker_job.items(): del worker_job[job_name] return HTTPFound(location='/workerstatus') elif url_action == 'update': # 发报告指令到各命令队列让worker报告自身状态 worker_list = ztq_core.get_all_worker() for worker_name in worker_list: if worker_name == worker_id: utils.send_command(worker_name, 'report') time.sleep(1) return HTTPFound(location='/workerstatus') return HTTPFound(location='/workerstatus')
def config_worker(request): """对worker进行配置管理 """ url_action = request.params.get('action','') # 获取用户请求操作 worker_id = request.matchdict['id'] if url_action == 'delete': #删除还没启用的worker,删除操作不会导致调度配置更新 workers_dict = ztq_core.get_worker_state() del workers_dict[worker_id] worker_job = ztq_core.get_job_state(worker_id) for job_name, job_status in worker_job.items(): del worker_job[job_name] return HTTPFound(location = '/workerstatus') elif url_action == 'update': # 发报告指令到各命令队列让worker报告自身状态 worker_list = ztq_core.get_all_worker() for worker_name in worker_list: if worker_name == worker_id: utils.send_command(worker_name, 'report') time.sleep(1) return HTTPFound(location = '/workerstatus') return HTTPFound(location = '/workerstatus')