Инструменты пользователя

Инструменты сайта


celery

Это старая версия документа!


Celery

Установка

Предположим, что переменное окружение уже создано и брокер очередей уже установлен, тут используем RabbitMQ
Устанавливаем

pip install celery

Вуаля!

Запуск

Создадим простой модуль для проверки

from celery import Celery
 
app = Celery('tasks', brocker='amqp://localhost')
 
@app.task
def reverse(string):
    return string[::-1]

в cli запускаем команду

celery -A tasks worker --loglevel=info

Из другой cli проверяем

reverse("nevvad")
# отправляем
revers.delay("nevvad")

В windows полетели ошибки

celery ValueError: not enough values to unpack (expected 3, got 0)

решения фикс зыс трабл

pip install eventlet

снова запускаем

celery -A tasks worker --pool=eventlet -l info
# delay - пашет

Подключаем Базу данных

Документация по подключению бд искать на оффсайте celery
Дополнительно добавляем задержку на очередь в 10 сек.

from celery import Celery
import time
 
app= Celery('tasks', brocker='amqp://localhost', backend='db+sqlite:///celery.db')
 
@app.task
def reverse(string):
    time.sleep(10)
    return string[::-1]

проверяем в cli

result = reverse.delay('nevvad')
# сразу смотрим статус
result.status
# получаем 
'PENDING'
# через несколько секунд еще раз смотрим статус, задержка отработала
'SUCCESS'
# так же все delay присутствуют в бд

еще проверка

result = reverse.delay('nevvad')
result.ready()
# получаем False
# через несколько секунд
# получаем True

result.get()
'davven'






celery.1545134407.txt.gz · Последнее изменение: 2019/10/01 16:13 (внешнее изменение)