【发布时间】:2019-02-26 04:01:15
【问题描述】:
请帮助我,了解我做错了什么。 Celery 没有运行我的任务。
Settings.py
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = TIME_ZONE
项目/celery.py
from __future__ import absolute_import
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
app = Celery('proj')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
初始化.py
from __future__ import absolute_import, unicode_literals
from celery import app as celery_app
__all__ = ['celery_app']
代码
@shared_task
def generate(instance, sender, **kwargs):
for i in CK_PROGRAM_NAME:
program_kf = i[0]
ck = instance.dk*program_kf
program_name = i[1]
program_obj = Program.objects.get(name=program_name)
foodprogram_generator(instance, ck, program_kf, program_obj, sender, **kwargs)
return
@receiver(post_save, sender=LeadUser)
def leaduser_foodprogram_post_save(instance, sender, **kwargs):
generate.delay(instance, sender, **kwargs)
return
Worker 由:celery -A proj worker --loglevel=INFO 运行
逻辑是: client_object 创建后,post_save 信号启动leaduser_foodprogram_post_save,添加到队列 generate()
我可以看到结果,所以我认为它没有运行。 没有芹菜,一切正常。
感谢您的回答!
【问题讨论】:
-
嗯,我想是的,它会找到任务:joxi.ru/DmBD17Yfwb0W9A
-
我对 Django 不是很熟悉。你也检查过接收器吗?它是否在 Django 中运行(导入?)? (这就是你所说的“没有芹菜,一切都可以正常工作”吗?)