Exemple #1
0
def execute_lambda(self, task, event, *args, **kwargs):
    conn = get_connection()
    task = conn.query(Task).filter(Task.task_id == task["task_id"])[0].to_json()
    res = run_lambda(task, event)
    if task['callback']:
        event['result'] = res
        task = conn.query(Task).filter(Task.task_id == task['callback'])[0].to_json()
        execute_lambda.apply_async(kwargs=dict(task=task, event=event))
    return res
Exemple #2
0
def scan_tasks(self, *args, **kwargs):
    conn = get_connection()
    next_run = 0
    for task in conn.query(Task).filter(Task.schedule != None):
        if task.last_run is None or task.next_run is None or task.next_run < int(mktime(datetime.utcnow().timetuple())):
            next_run = calculate_next_run(task)
            task.next_run = next_run
            conn.commit()
            execute_lambda.apply_async(kwargs=dict(task=task.to_json(), event=loads(task.func_args)))
    return "Schedules all what is required", int(mktime(datetime.utcnow().timetuple())), next_run