gpt4 book ai didi

Python:有没有办法安排 Celery 任务只在特定时间范围内运行?

转载 作者:行者123 更新时间:2023-11-28 19:17:30 27 4
gpt4 key购买 nike

我有一个使用 Celery 的应用程序,我希望它只允许工作人员在一天中的特定时间运行任务。

例如:

  • 我希望我的任务只在每天 2:00 到 4:00 之间执行
  • 如果队列中的所有任务都没有在那个时间范围内完成,那么它们将结转到第二天的 2:00 到 4:00 之间运行
  • 我可以随时向队列中添加更多任务

我一直在看Celery's Periodic Tasks但这似乎只能设置执行任务的时间,而不能设置任务停止的时间:

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
# Executes every Monday morning at 7:30 A.M
'add-every-monday-morning': {
'task': 'tasks.add',
'schedule': crontab(hour=7, minute=30, day_of_week=1),
'args': (16, 16),
},
}

开箱即用的 Celery 可能无法做到这一点,但我只是想在开始构建可以自动执行此操作的东西之前进行检查。

提前干杯!

最佳答案

我认为您可以使用 celery 中的原生功能做的最好的事情是将任务的 expires 选项设置为 2 小时。

CELERYBEAT_SCHEDULE = {
# Executes every Monday morning at 7:30 A.M
'add-every-monday-morning': {
'task': 'tasks.add',
'schedule': crontab(hour=14),
'expires': 60 * 60 * 2, # 2 hours
...

您需要自己实现的其余功能。

关于Python:有没有办法安排 Celery 任务只在特定时间范围内运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31854353/

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