我可以在没有django的情况下使用芹菜

时间:2016-05-03 00:12:05

标签: python django celery

我有API代码,可以将任务添加到队列中,然后让芹菜工人消耗这些任务。

目前我的代码库都相同。但是我希望芹菜工人只是拥有简单的普通Python任务而没有django代码,因为工人只会处理任务而且不需要django。是否可能。

为了启动芹菜工人,我需要使用这一行

<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" [class.is-checked]="isChecked()">
    <input type="checkbox" [(ngModel)]="checkbox.Checked" class="mdl-checkbox__input">
    <span class="mdl-checkbox__label">A label</span>
</label>

我应该写什么而不是那里的django_project

1 个答案:

答案 0 :(得分:8)

是的,你可以。 Celery是一个通用的异步任务队列。代替“django_project”,你会指向你的模块。有关示例,请参阅http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#application

以下是使用celery的示例项目布局:

project-dir/
    mymodule/
         __init__.py 
         celery.py
         tasks.py
    tests/
    setup.py
    etc, etc (e.g. tox.ini, requirements.txt, project management files)

在mymodule / celery.py中:

# -*- coding : utf-8 -*-
from __future__ import absolute_import

from celery import Celery

app = Celery('mymodule',
             broker='amqp://',
             backend='amqp://',
             include=['mymodule.tasks'])

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

在mymodule / tasks.py中:

from __future__ import absolute_import

from mymodule.celery import app

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