Django 芹菜不运行任务

Django 芹菜不运行任务,django,redis,celery,Django,Redis,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_TIM

请帮我理解我做错了什么。芹菜不能完成我的任务

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
项目/芹菜.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()
init.py

代码

工作人员由以下人员运行:芹菜-项目工作人员-日志级别=信息

逻辑是: 创建客户机对象后,post_保存信号启动leaduser_foodprogram_post_保存,添加到队列生成中

我可以看到结果,所以我认为它没有运行。 没有芹菜,一切正常

谢谢你的回答

有几件事: *带有名称空间的config_from_对象可能会将其从变量中删除,因此您可能无法获得所需的配置, *当您看到共享任务时,您需要确保您正在从配置的芹菜应用程序调用该任务,因为使用共享任务的主要目的是在不同的应用程序之间实际共享任务。看看芹菜应用程序对象上的set_default函数,只要在芹菜设置中调用它,你就会看到不同。 无论如何,最好的检查方法是将rdb放在那里,检查芹菜应用程序,检查配置,如果没有设置代理,那么我在前面的评论中解释的第二点应该会让你开始做一些事情: *带有名称空间的config_from_对象可能会将其从变量中删除,因此您可能无法获得所需的配置, *当您看到共享任务时,您需要确保您正在从配置的芹菜应用程序调用该任务,因为使用共享任务的主要目的是在不同的应用程序之间实际共享任务。看看芹菜应用程序对象上的set_default函数,只要在芹菜设置中调用它,你就会看到不同。
无论如何,最好的检查方法是将rdb放在那里,检查芹菜应用程序,检查配置,如果没有设置代理,那么我在前面的评论中解释的第二点应该会让你继续进行

谢谢大家的回答,没有具体问题,但我重新检查了所有内容,并根据运行我的任务:

感谢各位的回答,没有具体问题,但我重新检查了所有内容,并根据运行我的任务:

自动发现工作吗?嗯,我想是的,它找到了任务:我对Django不太熟悉。你也检查过接收机了吗?它是进口的吗?在Django?这就是你所说的“没有芹菜,一切正常”的意思吗?自动发现有效吗?嗯,我想是的,它找到了任务:我对Django不太熟悉。你也检查过接收机了吗?它是进口的吗?在Django?这就是你所说的“没有芹菜,一切正常”吗?
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