首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Flask动态调度芹菜节拍任务

用Flask动态调度芹菜节拍任务
EN

Stack Overflow用户
提问于 2015-06-22 06:08:34
回答 2查看 5.5K关注 0票数 8

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

代码语言:javascript
运行
复制
venv/bin/celery worker -A celery_worker.celery --loglevel=info

我用这个简单的例子运行了芹菜节拍:

代码语言:javascript
运行
复制
@celery.task
def add(x, y):
    return x + y

在我的配置文件中:

代码语言:javascript
运行
复制
CELERYBEAT_SCHEDULE = {
    'add-every-30-seconds': {
        'task': 'app.email.add',
        'schedule': timedelta(seconds=30),
        'args': (16, 16)
    },
}
CELERY_TIMEZONE = 'UTC'

然后我运行芹菜节拍工人

代码语言:javascript
运行
复制
celery -A celery_worker.celery beat -s ~/Documents/cesco-automation/power/celerybeat-schedule

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

同样在我的应用程序shell上,我能够做到这一点。

代码语言:javascript
运行
复制
>>>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)

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

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

我真的需要芹菜节拍吗?除了crontab之外,还有其他选项吗?Crontab似乎不够敏锐。

EN

回答 2

Stack Overflow用户

发布于 2016-05-22 03:30:19

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

票数 4
EN

Stack Overflow用户

发布于 2016-08-24 00:05:07

即使我们放弃了flask/python来使用我们的应用程序。这个问题是通过使用名为Kala的调度程序解决的。这是一个简单的JSON over HTTP API,由Chronus提供,其功能与Kala相同,但由Airbnb提供的解决方案更加健壮和可伸缩。它完全是语言不可知论的。

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

https://stackoverflow.com/questions/30969814

复制
相关文章

相似问题

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