gpt4 book ai didi

django - 使用 Flask 动态安排 Celery Beat 任务

转载 作者:行者123 更新时间:2023-12-03 15:31:27 26 4
gpt4 key购买 nike

我希望能够让我的应用程序的用户使用 Celery beat 启动/停止周期性的 crontab 样式任务。现在我用 Celery 运行

venv/bin/celery worker -A celery_worker.celery --loglevel=info

我用这个简单的例子让 Celery Beat 运行:
@celery.task
def add(x, y):
return x + y

在我的配置文件中:
CELERYBEAT_SCHEDULE = {
'add-every-30-seconds': {
'task': 'app.email.add',
'schedule': timedelta(seconds=30),
'args': (16, 16)
},
}
CELERY_TIMEZONE = 'UTC'

然后我运行 Celery beat worker
celery -A celery_worker.celery beat -s ~/Documents/cesco-automation/power/celerybeat-schedule

它完美地工作!但我需要对日程有更多的控制。

同样在我的应用程序 shell 上,我能够做到这一点。
>>>add.apply_async([80,800],countdown=30)

>>> from datetime import datetime, timedelta
>>> tomorrow = datetime.now() + timedelta(days=1)
>>> add.apply_async(args=[10, 10], eta=tomorrow)

这很好,但我正在开发一个家庭自动化应用程序,所以我还需要停止任务。我该怎么做呢??

我也发现了这个 link提到 django 自定义调度程序类。这正是我所需要的。关于 Celery docs它提到了 -S 标志,但我不知道如何将该类正确添加到我的 Flask 应用程序中。我如何将它与 Flask 一起使用?

我真的需要 Celery Beat 吗?除了 crontab 之外还有其他选择吗? crontab 好像不够犀利。

最佳答案

此功能将在 Celery 4.0 版中可用。
动态任务调度目前仅在开发版本中支持:http://docs.celeryproject.org/en/master/userguide/periodic-tasks.html#beat-entries

关于django - 使用 Flask 动态安排 Celery Beat 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30969814/

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