Сельдерей вторая незарегистрированная задача

У меня есть сомнения относительно реализации celery с rabbitMQ, поскольку выполняется только первая функция (debug_task()), которую я определил в celery.py.

Проблема в том, что send_user_mail(randomNumber, email) не работает. debug_task работает, поэтому он зарегистрирован.

Это консоль сельдерея

[2022-10-08 22:28:48,081: ERROR/MainProcess] Получена незарегистрированная задание типа 'callservices.celery.send_proveedor_mail_new_orden'. Сообщение сообщение было проигнорировано и отброшено.

Не забыли ли вы импортировать модуль, содержащий эту задачу? Или может быть вы используете относительный импорт?

Почему он не зарегистрирован?

celery.py

from __future__ import absolute_import, unicode_literals
import os

from celery import Celery
from django.conf import settings

from django.core.mail import EmailMultiAlternatives, send_mail


os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'callservices.settings')
app = Celery('tasks',broker='pyamqp://guest@localhost//')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(settings.INSTALLED_APPS)

@app.task()
def debug_task():
    print("hi all")

@app.task()
def send_user_mail(randomNumber, email):
    subject = 'email validation - ServicesYA'
    cuerpo="Your number is: "+str(randomNumber)

    send_mail(subject, cuerpo ,'xxx.ssmtp@xxx.com', [email],fail_silently = False) 
    return 1

Это init.py

# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from celery import app as celery_app

__all__ = ('celery_app',)

и в settings.py я добавляю эту строку:

BROKER_URL = "amqp://guest:guest@localhost:5672//"
Вернуться на верх