Kombu отключается при публикации

У меня проблемы с публикацией сообщений с помощью kombu 4.1. Мой вариант использования заключается в том, что у меня есть сервер, который собирает сообщения из очереди rabbitmq (очередь 1), выполняет некоторую задачу обработки, а затем повторно публикует их в другой очереди (очередь 2). У меня нет проблем с потреблением из очереди 1, но когда я пытаюсь опубликовать в очереди 2, возникает прерывистая ошибка, из-за которой я отключаюсь от rabbitmq. Я активировал как повторные попытки, так и комбинированный ConsumerProducerMixin, но проблема остается. Я также безрезультатно опубликовал эту проблему на странице github kombu: - https://github.com/celery/kombu/issues/857

Есть ли у кого-нибудь понимание этой проблемы, будет ли она исправлена ​​в комбу 4.2, есть ли обходной путь, не связанный с переключением на другую библиотеку?

Благодарю вас


person emptyMug    schedule 16.05.2018    source источник
comment
Я нашел временное решение для этого. Я помещаю команду публикации в цикл for с функцией try catch, предназначенной для повторения команды публикации до 30 раз вручную, если она не может быть опубликована. Однако это похоже на репликацию команды повторной попытки. Есть ли у кого-нибудь дальнейшее понимание этого?   -  person emptyMug    schedule 22.05.2018


Ответы (1)


На самом деле это не ответ о том, почему это происходит, а два обходных пути, которые, похоже, решают проблему для нас.

  • Установите heartbeat=0 при открытии нового подключения (но, возможно, вам нужны сигналы).
  • Понизьте версию комбу до v4.0.2. Как указано здесь, task_publish_retry_policy кажется сломанным из kombu==4.1.0

Надеюсь, это поможет!

person Eduardo S    schedule 10.07.2018
comment
Существует третий обходной путь, когда я добавил попытку, кроме команды публикации, чтобы в случае сбоя я повторно подключался к rabbitmq и повторял попытку отправить сообщение. Эта ручная версия task_publish_retry_policy пока работает, но я все еще жду полного исправления в будущей версии библиотеки. - person emptyMug; 11.07.2018