def handle_task(task): """ 处理每一个任务 :param task: 任务对象 :return: """ if task.command_code == 1: # 添加一个容器 r, obj = add_one_container(task) if r: # 保存容器服务器申请到的容器 dao = AppContainModel( app_id=task.app_id, host=obj['host'], port=obj['r']['result']['port'], container_id=obj['r']['result']['containerId'], create_time=datetime.datetime.now(), api_url=obj['api_url']) dao.save() login_log( "common", "申请容器成功,触发应用id:%d,申请到的容器域名:%s,端口:%d,id:%s" % (task.app_id, obj['host'], obj['r']['result']['port'], obj['r']['result']['containerId'])) else: login_log("error", "申请容器失败,触发应用id:%d" % task.app_id) elif task.command_code == 2: # 移除一个容器 remove_some_container(task, 1) elif task.command_code == 3: # 移除所有容器 count = AppContainModel.select().where( AppContainModel.app_id == task.app_id).count() remove_some_container(task, count) else: # 未定义任务码 login_log("error", "未定义任务码:%d,触发应用id:%d" % (task.command_code, task.app_id)) build_nginx_config(task.app_id) # 删除任务队列 dao = TaskQueueModel.delete().where(TaskQueueModel.id == task.id) dao.execute()