示例#1
0
def create_event_fires(event_id):

    # get a lock
    r = get_redis_connection()
    key = "event_fires_event_%d" % event_id

    with r.lock(key, timeout=300):
        try:

            with transaction.atomic():
                event = CampaignEvent.objects.filter(pk=event_id).first()
                if event:
                    EventFire.do_create_eventfires_for_event(event)

        except Exception as e:  # pragma: no cover
            # requeue our task to try again in five minutes
            create_event_fires(event_id).delay(countdown=60 * 5)

            # bubble up the exception so sentry sees it
            raise e