python - 如果队列中的执行延迟了最大时间段,如何丢弃计划的 celery 任务?
问题描述
设想:
任务在特定时间通过 celerybeat 时间表在 celery 中排队。
在某些罕见的情况下,celery 任务队列可能很长,或者任务可能需要比正常时间更长的时间才能完成。
让我们假设很少有任务在凌晨 3 点被安排在队列中,并且大部分任务在凌晨 4 点由工作人员完成。让我们假设早上 5 点是一个时间限制。
在某些场景下,上述任务的执行时间会达到早上 6 点。如果现在时间已经过了凌晨 5 点,如何丢弃当前排队的所有任务?即,如果当前时间已超过 time_of_day 条件,则已在某个时间排队的任务将不会运行。
一个明显的方法是datetime
在 celery 任务代码中使用模块并在它们超过 time_of_day 条件时返回。
芹菜中是否有任何内置方法/参数来控制这种行为?实现这一目标的更好方法是什么?
解决方案
推荐阅读
- docker - 在 docker .NET Core 容器中获取“无法复制目录:无效的符号链接”
- javascript - 鼠标悬停时隔离 SVG 的部分
- powerbi - 无法在我的模型中建立多对多关系
- css - How can I nest a selector with ::after psudo class using SCSS?
- html - 在源代码中换行时 {% url ... %} 中的 URL 错误
- java - 如何生成列表地图的地图(地图
>>) 在java中使用流 - aframe - 双击监听器需要在 iOS 13 上点击三下
- sql - SQL - 仅显示日期最新的行
- python - 是否可以在 python 中“流式传输”一个变量?
- python - 如何分析芹菜任务的内存使用情况?