我们有一个带有芹菜的Django应用程序来处理异步任务。我们使用AWS SQS作为任务代理。
我们最终得到了一个要处理的糟糕任务(删除了任务实现而没有删除芹菜节拍条目)。这导致了以下错误:
Received unregistered task of type KeyError('some_deleted_task').
The message has been ignored and discarded.
一旦我们清理了芹菜节拍条目,我们就继续得到错误~2分钟( SQS上的能见度超时设置为2分钟)。
行为似乎是:
任务添加到队列中,在SQS中作为“可用”
工作人员拿起任
我按照官方教程/文档的说法为Django项目安装了芹菜。当我在命令行发射芹菜的时候,我可以看到它接收到任务并执行它们。但是,一旦一切正常运行,我决定多跟着文档,去守护芹菜,让它一直运行。因此,我也尝试了在Ubuntu系统上使用/etc/default/celeryd脚本提供的celeryd init脚本。我相应地更改了值,并正确地启动了它,但是当它接收到一个任务时,日志会说:
ERROR/MainProcess] Received unregistered task of type 'likes.tasks.test'.
The message has been ignored
我们有一个部署在AWS中的Terraform应用程序。
Terraform负责创建所有所需的资源是AWS,包括芹菜,节拍和花卉,以及烧瓶应用ec2实例。
我的芹菜在本地主机上运行,所有任务都正确注册。然而,当我在AWS中部署应用程序时,我在花式仪表板上得到了一个NotRegistered("<name of the >")。我还在Received unregistered task of type: <name of the task>日志中的芹菜工人的日志中找到了CloudWatch。
# The file in the terraform where
在我的django应用程序中,我使用芹菜。在post_save信号中,我在弹性搜索中更新索引。但是由于某种原因,任务会挂起,永远不会实际执行代码:
我用来经营芹菜的东西:
celery -A collegeapp worker -l info
信号:
@receiver(post_save, sender=University)
def university_saved(sender, instance, created, **kwargs):
"""
University save signal
"""
prin
可能重复:
在我的Django项目中,我有一些芹菜的Task和PeriodicTask的子类
class CustomTask(Task):
# stuff
class CustomPeriodicTask(PeriodicTask):
# stuff
我需要所有的任务类来添加一些自定义日志配置。所以我想我可以__subclasses__,但这不起作用:
>>> Task.__subclasses__()
[<unbound PeriodicTask>, <class handle_register of <Celery d