gpt4 book ai didi

django - celery 不运行任务

转载 作者:可可西里 更新时间:2023-11-01 10:52:34 25 4
gpt4 key购买 nike

请帮助我了解我做错了什么。 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()

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

感谢您的回答!

最佳答案

几件事::* 带有命名空间的 config_from_object 可能会从变量中剥离它,因此您可能无法获得您想要的配置,* 当您看到共享任务时,您需要确保您是从配置的 celery 应用程序调用任务,因为使用共享任务的要点是在不同应用程序之间实际共享任务。查看 celery 应用程序对象上的“set_default”函数,只需在 celery 设置中调用它,您就会看到不同之处。无论如何,最好的检查方法是将 rdb 放在那里并检查 celery 应用程序,检查配置,如果未设置代理,那么我之前评论中解释的第二点应该可以让你继续

关于django - celery 不运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52448876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com