コード例 #1
0
    def event(self, event):
        worker_name = event['hostname']
        event_type = event['type']
        if event_type.startswith('task-'):
            logger.error('************')
            task = State.Task(uuid=event.get('uuid'))
            logger.error('event is: {}'.format(event))
            logger.error('State is: {}'.format(dir(State)))
            logger.error('State2 is: {}'.format(dir(State.event)))
            #logger.error('Task is: {}'.format(dir(State.get_or_create_task(self, uuid=event.get('uuid')))))
            logger.error('Task is: {}'.format(dir(State.Task(uuid=event.get('uuid')))))
            logger.error('Routing Key is: {}'.format(task.routing_key))
            logger.error('Exchange is: {}'.format(task.exchange))
            #tasks = State.tasks.get(event['uuid'])
            #logger.error('tasks are : {}'.format(tasks))


        self.counter[worker_name][event_type] += 1

        if event_type.startswith('task-'):
            task_id = event['uuid']
            task_name = event.get('name', '')
            if not task_name and task_id in self.tasks:
                task_name = self.tasks[task_id].name or ''
            self.metrics.events.labels(worker_name, event_type, task_name).inc()

            runtime = event.get('runtime', 0)
            if runtime:
                self.metrics.runtime.labels(worker_name, task_name).observe(runtime)

        # Send event to api subscribers (via websockets)
        classname = api.events.getClassName(event_type)
        cls = getattr(api.events, classname, None)
        if cls:
            cls.send_message(event)

        # Save the event
        super(EventsState, self).event(event)