@reqww

Спавн бесконечного количества воркеров CELERY?

Пытаюсь выполнить примитивную задачу по отправке письма при помощи CELERY
Все, кажется, хорошо, вот только почему-то вместо выполнения задач CELERY занимается спавном воркеров
Настройки celery:
REDIS_HOST = '0.0.0.0'
REDIS_PORT = '6379'
CELERY_BROKER_URL = f'redis://{REDIS_HOST}:{REDIS_PORT}/0'
CELERY_BROKER_TRANSPORT_OPTIONS = {'visiblity_timeout': 3600}
CELERY_RESULT_BACKEND = f'redis://{REDIS_HOST}:{REDIS_PORT}/0'
CELERY_ACCEPT_CONTENT = ['json', 'applicaion/json', 'applicaion/text']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERILIZER = 'json'


celery.py:
import os
from celery import Celery
# from celery.schedules import crontab

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'send_email.settings')

app = Celery('send_email')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()


tasks.py:
from send_email.celery import app as celery_app

from .service import send

@celery_app.task
def send_spam_email(user_email):
    send(user_email)


views.py
class ContactView(CreateView):
    '''Отображение формы подписки на email'''
    model = Contact
    form_class = ContactForm
    success_url = '/'
    template_name = 'main/contact.html'

    def form_valid(self, form):
        form.save()
        #send(form.instance.email)
        send_spam_email.delay(form.instance.email)
        return super().form_valid(form)


Запускаю следующей командой:
celery -A send_email worker -l info -c 4
Также использую redis из контейнера docker
Проверял сам код на работоспособность без celery (smtp работает)

По итогу, когда я отправляю форму, celery принимает таску, но в это же время она спавнит воркеров, поэтому в консоли вот такое:
5f3918e71371e128186670.png
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
@reqww Автор вопроса
celery -A your_app_name worker --pool=solo -l info
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы