2016-05-03 2 views
2

У меня есть код API, который добавляет задачи в очередь, а затем работники сельдери, которые потребляют эти задачи.Могу ли я использовать сельдерей без django

В настоящее время у меня есть и кодовая база. Но я хочу, чтобы работники сельдерея просто имели простые простые задачи Python и не использовали код django, поскольку работники будут обрабатывать только задачи, и для этого не требуется django. Является ли это возможным.

Для того, чтобы начать сельдерей работник мне нужно использовать эту линию

celery -A django_project worker --queue high 

Что я должен писать вместо django_project там

ответ

2

Да, вы можете. Сельдерей - это общая асинхронная очередь задач. Вместо «django_project» вы должны указать на свой модуль. См. Пример http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#application.

Вот макет пример проекта с использованием сельдерея:

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 
+0

, что должно быть содержание celery.py – Karl

+0

спасибо за это – Karl

Смежные вопросы