Ejemplo n.º 1
0
Archivo: event.py Proyecto: xplot/imeet
    def push_event(cls,
                   endpoint,
                   payload=None,
                   method='POST',
                   headers=None,
                   priority=0,
                   group_id=None):
        """
        Will push an event to the event queue.

        endpoint:   URL to call while executing the event
        payload:    Dictionary of GET params or body JSON
        method:     GET|POST
        headers:    Headers while executing the request
        priority:   Will be used to block events while lower priorities
                    events have failed. An event will only execute
                    if it' the next top priority on that group
        group_id:   Grouping of events, if None, an event will have it's
                    own unique group
        """
        if not payload:
            payload = {}

        if not group_id:
            group_id = guid()

        event = Event()
        event.created = datetime.datetime.now()
        event.headers = json.dumps(headers) or ''
        event.method = method
        event.payload = json.dumps(payload)
        event.endpoint = endpoint
        event.status = EventStatus.CREATED
        event.priority = priority
        event.group_id = group_id
        event.put()

        q = taskqueue.Queue(QUEUE_NAME)
        q.add([taskqueue.Task(
            name=cls._get_cutie_task_name(event.unique_id),
            payload=event.unique_id,
            method='PULL'
        )])
Ejemplo n.º 2
0
Archivo: event.py Proyecto: xplot/imeet
    def push_event(cls,
                   endpoint,
                   payload=None,
                   method='POST',
                   headers=None,
                   priority=0,
                   group_id=None):
        """
        Will push an event to the event queue.

        endpoint:   URL to call while executing the event
        payload:    Dictionary of GET params or body JSON
        method:     GET|POST
        headers:    Headers while executing the request
        priority:   Will be used to block events while lower priorities
                    events have failed. An event will only execute
                    if it' the next top priority on that group
        group_id:   Grouping of events, if None, an event will have it's
                    own unique group
        """
        if not payload:
            payload = {}

        if not group_id:
            group_id = guid()

        event = Event()
        event.created = datetime.datetime.now()
        event.headers = json.dumps(headers) or ''
        event.method = method
        event.payload = json.dumps(payload)
        event.endpoint = endpoint
        event.status = EventStatus.CREATED
        event.priority = priority
        event.group_id = group_id
        event.put()

        q = taskqueue.Queue(QUEUE_NAME)
        q.add([
            taskqueue.Task(name=cls._get_cutie_task_name(event.unique_id),
                           payload=event.unique_id,
                           method='PULL')
        ])