繁体   English   中英

Celery击败Windows简单示例(不使用Django)

[英]Celery Beat Windows Simple Example (not with Django)

我真的很难在Windows 7上使用Celery Beat设置周期性任务(不幸的是,这正是我目前正在处理的事情)。 将使用芹菜的应用程序是用CherryPy编写的,因此Django库与此处无关。 我正在寻找的是一个如何在后台启动Celery Beat Process的简单示例。 FAQ部分说明如下,但我还没有真正做到:

视窗

worker的-B / -beat选项不起作用?¶

答:没错。 将celery beat和芹菜工作者作为单独的服务来代替。

我的项目布局如下:

proj/
    __init__.py (empty)
    celery.py
    celery_schedule.py
    celery_settings.py (these work
    tasks.py

celery.py:

from __future__ import absolute_import

from celery import Celery
from proj import celery_settings
from proj import celery_schedule

app = Celery(
    'proj',
    broker=celery_settings.BROKER_URL,
    backend=celery_settings.CELERY_RESULT_BACKEND,
    include=['proj.tasks']
)

# Optional configuration, see the application user guide.
app.conf.update(
     CELERY_TASK_RESULT_EXPIRES=3600,
     CELERYBEAT_SCHEDULE=celery_schedule.CELERYBEAT_SCHEDULE
)

if __name__ == '__main__':
    app.start()

tasks.py

from __future__ import absolute_import

from proj.celery import app


@app.task
def add(x, y):
    return x + y

celery_schedule.py

 from datetime import timedelta

 CELERYBEAT_SCHEDULE = {
     'add-every-30-seconds': {
          'task': 'tasks.add',
          'schedule': timedelta(seconds=3),
          'args': (16, 16)
     },
 }

从命令行(从“proj”的父目录)运行“celery worker --app = proj -l info”启动工作线程就好了,我可以从Python终端执行添加任务。 但是,我只是无法弄清楚如何启动节拍服务。 显然语法也可能不正确,因为我没有超过缺少的--beat选项。

只需通过一个新的终端窗口启动另一个进程,确保您在正确的目录中并执行命令celery beat(在beat关键字之前不需要' - ')。

如果这不能解决您的问题,请将您的celery_schedule.py文件重命名为celeryconfig.py,并将其包含在您的celery.py文件中:app.config_from_object('celeryconfig')就在您的名字正上方== main

然后产生一个新的芹菜节拍过程:芹菜击败

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM