调用python方法和直接调用celery任务之间的区别?

时间:2015-06-30 11:16:38

标签: python celery

考虑以下情况:

# tasks.py
@app.task
def add(x, y):
    return x + y

def add_normal(x, y):
    return x + y
# test.py
from tasks import add, add_normal
add(1, 2)
add_normal(1, 2)

如果add方法没有变成芹菜任务(add(1,2)),这个add_normal(1, 2)调用是否会有所不同?

根据芹菜的文档Calling Tasks

  

直接应用任务将在当前进程中执行任务,因此不会发送任何消息:

但是如果任务失败并且稍后会重新尝试,那么该任务是否会提交给代理?

有没有更明确解释的文件?谢谢!

1 个答案:

答案 0 :(得分:0)

两者都是一样的。如果要将方法发送到任务队列,则需要使用装饰对象的apply_asyncdelay方法。