def get_task_processor(task_name, task_type): from parkworker.work import Work from parkworker.monit import Monit if task_type == TASK_TYPE_MONIT: task_processor_class = Monit.get_monit(task_name) elif task_type == TASK_TYPE_WORK: task_processor_class = Work.get_work(task_name) else: raise UnknownTaskTypeException('Unknown task type "%s"' % task_type) if not task_processor_class: raise UnknownTaskNameException('Unknown task name "%s" for task type "%s"' % (task_name, task_type)) task_processor = task_processor_class() return task_processor
def _register_worker(self): context = zmq.Context() register_socket = context.socket(zmq.REQ) register_socket.connect("tcp://%s:%s" % (self.ZMQ_SERVER_ADDRESS, self.ZMQ_WORKER_REGISTRATOR_PORT)) try: monits = {name: monit_class.description for name, monit_class in Monit.get_all_monits()} works = {name: work_class.description for name, work_class in Work.get_all_works()} worker_data = self._get_worker_data(data={"monits": monits, "works": works}) worker_data_json = json.dumps(worker_data, default=json_util.default) register_socket.send_string(worker_data_json) answer_json = register_socket.recv_string() answer_data = json.loads(answer_json, object_hook=json_util.object_hook) self.scheduler_port = answer_data["scheduler_port"] finally: register_socket.close()