На моем компьютере с Ubuntu работает сервер RabbitMQ
. У меня есть Celery
работник по имени simple_worker.py
# simple_worker.py
import time
from celery import Celery
# Create the app and set the broker location (RabbitMQ)
app = Celery('simple_worker',
backend='rpc://',
broker='pyamqp://guest@localhost//')
@app.task
def create_file():
""" Create file if does not exist """
with open(str(int(time.time())) + '.txt', 'a'):
pass
Итак, я запускаю рабочий: celery -A simple_worker worker
, он запускается нормально.
В оболочке Python:
from simple_worker import *
create_file.delay()
Это вызывает создание файла в текущем каталоге. Все идет нормально.
Однако я не могу получить такое же поведение от flower
.
Стартовый цветок: flower celery -A simple_worker
Любые звонки, сделанные с помощью .delay()
, просто продолжают добавляться в очередь. Это можно подтвердить, запустив команду celery и наблюдая за созданием тестовых файлов.
Дополнительно curl http://localhost:5555/api/task/types
выводит {"task-types": []}
и curl -X POST http://localhost:5555/api/task/async-apply/simple_worker.create_file
выводит {"task-id": "05b4a52e-9ea4-4abb-8183-1ca21e96b488", "state": "PENDING"}
.
Версия:
Ubuntu: 18.04
RabbitMQ: 3.6.10-1
Celery: 4.3.0
Flower: 0.9.3
Любая помощь будет принята с благодарностью.