示例#1
0
def process_next(dt, inject_filters=None, custom_next_tasks=None, sync=True, launch_next=True, map_filters=None):
    if custom_next_tasks is None:
        custom_next_tasks = []
    task_id = dt.pk
    launched = []
    args = copy.deepcopy(dt.arguments)
    logging.info("next tasks for {}".format(dt.operation))
    next_tasks = args.get('map', []) if args and launch_next else []
    if sync and settings.MEDIA_BUCKET:
        for k in SYNC_TASKS.get(dt.operation, []):
            if settings.ENABLE_CLOUDFS:
                dirname = k['arguments'].get('dirname', None)
                task_shared.upload(dirname, task_id, dt.video_id)
            else:
                launched += launch_tasks(k, dt, inject_filters, None, 'sync')
    for k in next_tasks + custom_next_tasks:
        if map_filters is None:
            map_filters = get_map_filters(k, dt.video)
        launched += launch_tasks(k, dt, inject_filters, map_filters, 'map')
    for reduce_task in args.get('reduce', []):
        next_task = TEvent.objects.create(video=dt.video, operation="perform_reduce",
                                          arguments=reduce_task['arguments'], parent=dt,
                                          task_group_id=reduce_task['task_group_id'],
                                          parent_process_id=dt.parent_process_id, queue=settings.Q_REDUCER)
        launched.append(app.send_task(next_task.operation, args=[next_task.pk, ], queue=settings.Q_REDUCER).id)
    return launched
示例#2
0
def process_next(task_id,inject_filters=None,custom_next_tasks=None,sync=True,launch_next=True):
    if custom_next_tasks is None:
        custom_next_tasks = []
    dt = TEvent.objects.get(pk=task_id)
    launched = []
    logging.info("next tasks for {}".format(dt.operation))
    next_tasks = dt.arguments.get('next_tasks',[]) if dt.arguments and launch_next else []
    if sync and settings.MEDIA_BUCKET:
        for k in SYNC_TASKS.get(dt.operation,[]):
            if settings.DISABLE_NFS:
                dirname = k['arguments'].get('dirname',None)
                task_shared.upload(dirname,task_id,dt.video_id)
            else:
                launched += launch_tasks(k,dt,inject_filters,None,'sync')
    for k in next_tasks+custom_next_tasks:
        map_filters = get_map_filters(k,dt.video)
        launched += launch_tasks(k, dt, inject_filters,map_filters,'next_tasks')
    return launched