首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-q任务队列:失败的任务将永远保持处理。

django-q任务队列:失败的任务将永远保持处理。
EN

Stack Overflow用户
提问于 2019-06-07 08:24:20
回答 2查看 2.4K关注 0票数 1

任何使用django-q任务调度程序的人:https://github.com/Koed00/django-q

(不是与数据库相关的Q库)

我有一大堆失败的任务。每次我运行django-q时,都会出现这些失败的任务:

代码语言:javascript
复制
18:06:14 [Q] INFO Process-1:9 processing [apart-sixteen-butter-friend]
18:06:14 [Q] INFO Process-1:10 processing [single-mississippi-bravo-fillet]
18:06:14 [Q] ERROR Failed [lithium-cola-batman-fanta] - No module named 'shootsta.user'
18:06:14 [Q] INFO Process-1:9 processing [ink-october-angel-california]
18:06:14 [Q] ERROR Failed [zulu-michigan-yankee-kilo] - No module named 'shootsta.user'
18:06:14 [Q] ERROR Failed [four-lemon-arizona-football] - No module named 'shootsta.user'
18:06:14 [Q] ERROR Failed [mississippi-fillet-winner-single] - No module named 'shootsta.user'
18:06:14 [Q] ERROR Failed [west-pennsylvania-asparagus-alabama] - 'BookingAnalytics' object has no attribute 'booking_uid'
18:06:14 [Q] ERROR Failed [wisconsin-pip-alanine-seventeen] - Can't switch from state 'job_complete' using method 'assign_camop'
18:06:14 [Q] ERROR Failed [finch-monkey-moon-oven] - 'AnalyticsFilter' object is not iterable
18:06:14 [Q] ERROR Failed [yellow-west-mango-papa] - 'AnalyticsFilter' object is not iterable
18:06:14 [Q] ERROR Failed [zulu-equal-mississippi-happy] - 'str' object has no attribute 'booking_uid'
18:06:14 [Q] ERROR Failed [six-beer-golf-blue] - 'str' object has no attribute 'booking_uid'
18:06:14 [Q] ERROR Failed [apart-sixteen-butter-friend] - 'str' object has no attribute 'booking_uid'
18:06:14 [Q] ERROR Failed [single-mississippi-bravo-fillet] - 'str' object has no attribute 'booking_uid'
18:06:14 [Q] ERROR Failed [ink-october-angel-california] - 'str' object has no attribute 'booking_uid'
18:06:15 [Q] ERROR reincarnated worker Process-1:4 after death
18:06:15 [Q] INFO Process-1:11 ready for work at 20244

这些失败任务中提到的相关问题已经解决。然而,失败的任务却不断出现。即使我从数据库中删除失败的条目(django_q_task表),每次运行qcluster命令时都会重新创建它们。

如何处理这个问题并防止这些错误出现在输出中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-29 10:18:04

这是新添加的配置:attempt_count,您可以根据这个拉请求将其设置为1。

max_attempts不够好,而且令人困惑-- 因为最小重试是1 --因此,对失败任务的调用总数为2。

请记住,如果引发了'ack_failures': True,还需要设置Exception -以确认故障。

令人困惑的是,能起作用的是:

代码语言:javascript
复制
Q_CLUSTER = {
    'name': 'DjangORM',
    'workers': 1,
    'timeout': 600,
    'orm': 'default',
    'save_limit': 0,
    'ack_failures': True,
    'max_attempts': 1,
    'attempt_count': 1
}
票数 3
EN

Stack Overflow用户

发布于 2019-09-03 14:41:31

我也有同样的问题--最简单的方法是通过Django管理web界面删除它们--只需登录并转到Django Q部分--删除失败的任务以及相关的调度和排队任务--应该是这样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56490630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档