问题:@shared_task Decorator从自定义文件导入数据时不起作用。我的意思是,当我开始芹菜时,@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(....)
...
...
为什么?!?
解决该问题的解决方案是将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(....)
...
...