Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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()