Scorpion_MB
@Scorpion_MB
Изучаю Питон

Сonsumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [WinError 10061] Подключение не установлено... Кто поможет?

Следовал инструкции по подключению celery здесь. Сначала все работало, задачи попадали в очередь, но не выполнялись. Переустановил celery (более современную версию) - все перестало работать. Пробовал переустанавливать брокер и разные версии celery результат тот же. Искал много информации в поисковиках - ничего не помогло. Может подскажет кто? Приведу немного кода.

Successfully installed amqp-5.0.5 billiard-3.6.3.0 celery-5.0.5 kombu-5.0.2 vine-5.0.0

celery.py
from celery import Celery
from django.conf import settings

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

app = Celery('kosmetica')<code></code>app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)


task.py (orders)
from kosmetica.celery import app
from django.core.mail import send_mail
from .models import Order

@app.task
def order_created(order_id):
    """
    Задача для отправки уведомления по электронной почте при успешном создании заказа. 
    """
    order = Order.objects.get(id=order_id)
    subject = 'Заказ №. {}'.format(order_id)
    message = 'Добрый день! {},\n\nВы успешно сформировали заказ.\
                Ваш заказ № {}.'.format(order.first_name,
                                             order.id)
    mail_sent = send_mail(subject,
                          message,
                          'admin@kosmtica.com',
                          [order.email])
    return mail_sent


urls.py (orders)
from . import views

urlpatterns = [
    url(r'^create/$', views.order_create, name='order_create'),
]


views.py (orders)
from cart.cart import Cart
from .tasks import order_created


def order_create(request):
    cart = Cart(request)
    if request.method == 'POST':
        form = OrderCreateForm(request.POST)
        if form.is_valid():
            order = form.save()
            for item in cart:
                OrderItem.objects.create(order=order,
                                         product=item['product'],
                                         price=item['price'],
                                         quantity=item['quantity'])
            # очистка корзины
            cart.clear()
            # запуск асинхронной задачи
            order_created.delay(order.id)
            return render(request, 'orders/order/created.html',
                          {'order': order})
    else:
        form = OrderCreateForm
    return render(request, 'orders/order/create.html',
                  {'cart': cart, 'form': form})
  • Вопрос задан
  • 540 просмотров
Пригласить эксперта
Ответы на вопрос 1
Scorpion_MB
@Scorpion_MB Автор вопроса
Изучаю Питон
А что это за порт 5672? Такого порта в списке нет. 60518f7b723bd108402271.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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