芹菜任务的别名

时间:2014-08-20 14:15:33

标签: python celery

我正在切换任务命名方案。代码的某些部分仍使用旧名称,有些使用新名称。所以,我的问题是:什么是别名Celery任务的正确方法?

@task
def new_task_name():
    pass

old_task_name = new_task_name  # doesn't work
app.tasks['old_task_name'] = new_task_name  # still doesn't work

我得到类似的错误:

Received unregistered task of type 'app.tasks.old_task_name'

更新

我目前的解决方案是转发任务。但我仍然希望有一个更清洁的方法:

@task
def old_task_name():
    new_task_name.delay()

2 个答案:

答案 0 :(得分:0)

@app.task(name='this-is-the-name')
def new_task_name():
    pass

答案 1 :(得分:0)

这个问题很古老,但是更直接的方法是:

@task(name='old-name')
def old_task_name(*args, **kwargs):
    return new_task_name(*args, **kwargs)

Celery任务仍然可以称为普通方法。