Я пытаюсь установить периодическую задачу, используя Celery (4.2.0) и RabbitMQ (3.7.14), работающие с Python 3.7.2 на виртуальной машине Azure с использованием Ubuntu 16.04.Я могу запустить ритм и работника и увидеть, как сообщение отправляется с такта на работника, но в этот момент я сталкиваюсь с такой ошибкой:
[2019-03-29 21:35:00,081: ERROR/MainProcess] Received
unregistered task of type 'facebook-call.facebook_api'.
The message has been ignored and discarded.
Did you remember to import the module containing this task?
Or maybe you're using relative imports?
Мой код выглядит следующим образом:
from celery import Celery
from celery.schedules import crontab
app = Celery('facebook-call', broker='amqp://localhost//')
@app.task
def facebook_api():
{function here}
app.conf.beat.schedule = {
'task': 'facebook-call.facebook_api',
'schedule': crontab(hour=0, minute =0, day='0-6'),
}
Я запускаю процессы ударов и рабочих, используя имя файла python, который содержит весь код
celery -A FacebookAPICall beat --loglevel=info
celery -A FacebookAPICall worker --loglevel=info
Снова начинается процесс ударов, и яможет видеть сообщение, успешно переданное работнику, но не может понять, как «зарегистрировать» задачу, чтобы она была обработана работником.