返回

带有celery settings的 Django 应用程序,任务总是“待处理”。我该如何修复这个错误?

发布时间:2022-05-19 02:36:11 380
# python# django# 信息

我在 settings.py 中有以下设置

CELERY_BROKER_URL = "amqp://admin:admin2017@localhost"
CELERY_IMPORTS = ("web.task",)

当我使用表单向 celery 提交任务时,我看到状态始终处于挂起状态

以下代码用于模型(我也有一个tasks.py)

class AnaysisStatus(models.IntegerChoices): 
    PENDING = 1
    COMPLETED = 2
    FAILED = 0

    
class Analysis(models.Model):
    STATUS_CHOICES = ((1,"PENDING"),(2,"COMPLETED"),(0,"FAILED"))
    user = models.ForeignKey(User,on_delete=models.CASCADE)
    status = models.IntegerField(choices=AnaysisStatus.choices,null= True)
    created_at = models.DateTimeField(auto_now_add=True,null=True)
    file = models.FileField(null=True)
    data  = models.JSONField(null=True)

我对 celery 和 django 非常陌生,因此非常感谢任何帮助。

编辑:我在本地安装了 rabittMQ 并设置了虚拟主机权限并启动了一个工人我现在看到这个错误:

消息头的完整内容: {'lang': 'py', 'task': 'web.task.switch', 'id': '250f7475-5186-4f68-a8ac-cb19802221cd', 'shadow': None ,'eta':无,'expires':无,'group':无,'group_index':无,'重试':0,'timelimit':[无,无],'root_id':'250f7475-5186- 4f68-a8ac-cb19802221cd','parent_id':无,'argsrepr':“('admin-1652754818.sol','0.4.24',24)”,'kwargsrepr':'{}','origin': 'gen19316@MacBook-Air.hitronhub.home', 'ignore_result': False}

此任务的交付信息是:{'consumer_tag': 'None4', 'delivery_tag': 1, 'redelivered': False, 'exchange': '', 'routing_key': 'celery'} Traceback(最近一次通话最后一次):文件“/opt/homebrew/lib/python3.9/site-packages/celery/worker/consumer/consumer.py”,第 591 行,on_task_received strategy = strategy[type_] KeyError: 'web.task.switch'

编辑:任何可以帮助解决这个问题的人都会非常感激,在过去的 72 小时内我已经尝试了所有方法,并且迫切需要任何可能帮助或指引我正确方向的信息。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像