Esempio n. 1
0
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)
Esempio n. 2
0
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) 
Esempio n. 3
0
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')
Esempio n. 4
0
File: views.py Progetto: baojie/ztq
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')
Esempio n. 5
0
File: views.py Progetto: ghotiv/ztq
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')
Esempio n. 6
0
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')