问题:当我从自定义文件导入数据时,@ shared_task装饰器不起作用。我的意思是,当我开始芹菜时,@ shared_task下的所有任务都不会出现在任务列表中。
例如,在这种情况下,@ shared_task装饰器不起作用:
from __future__ import absolute_import, unicode_literals
from celery import shared_task
from .models import foo
@shared_task
def my_foo_backup(id):
my_foo = foo(....)
...
...
这是@shared_task工作时的示例:
from __future__ import absolute_import, unicode_literals
from celery import shared_task
@shared_task
def my_foo_backup(id):
my_foo = foo(....)
...
...
为什么?!?
答案 0 :(得分:3)
该问题的解决方案是在函数内部移动import
命令。通过这种方式,它可以正常工作并符合PEP8的规则。
from __future__ import absolute_import, unicode_literals
from celery import shared_task
@shared_task
def my_foo_backup(id):
from .models import foo
my_foo = foo(....)
...
...