在和弦中的任务中启动无关的Celery任务

时间:2014-04-23 19:31:47

标签: celery

我是芹菜的新手,我无疑错过了明显的东西,但是如何在另一个芹菜some_other_task中开始芹菜some_worker_task,它应该完全独立于some_other_task执行?特别是,我有一个芹菜弦

junk = chord((task_create_syslog_records.s(syslog, user, syslog.fileset_id)
              for syslog in syslog_queryset),
             task_create_syslog_records_done_email.si(user, len(syslog_queryset), syslog_queryset[0].fileset_id))()

在其中一个task_create_syslog_records中的某些条件下,我需要启动另一个与thechord无关的任务do_some_stuff。它可以完全独立于和弦运行,并且和弦不需要/想要它的结果。即使do_some_stuff仍在运行,和弦应该完成并且task_create_syslog_records_done_email也会运行。

1 个答案:

答案 0 :(得分:0)

您可以在现有任务中创建另一个芹菜任务:

@app.task
def do_some_stuff():
    pass

@app.task
def task_create_syslog_records(syslog, user, filset_id):
    # ...    
    if condition_is_matched:
        do_some_stuff.delay()
    # ...
    return result