我正在尝试将Celery集成到我的Django应用程序中,以异步运行某些内容。首先是send_mail功能。
我有:
设置重做在6379上运行。还将相关设置添加到settings.py
CELERY_BROKER_URL = 'redis://localhost'
设置芹菜工作者
celery -A celery_settings worker -l DEBUG -E
下面是调用它的代码(在视图内):
send_email_async.apply_async([
'Subject',
'body,
'your_favorite@friend.com',
[user.email]], countdown=1
)
return JsonResponse({'key': 'value'})
这是任务:
@task
def send_email_async(subject, body, from_mail, to, fail_silently=False):
send_mail(subject, body, from_mail, to, fail_silently)
return True
我可以通过调试器看到执行已达到celery任务。尽管看起来执行被塞住了,却没有进一步的操作线索。
from __future__ import absolute_import, unicode_literals
from eservices_hua.celery_settings import app as celery_app
__all__ = ['celery_app']
这是我第一次使用celery + django,所以不要做任何事情:)