Кто пользуется реббитом с го?
У меня такой вопрос, в оф доке сказано
There aren't any message timeouts; RabbitMQ will redeliver the message when the consumer dies. It's fine even if processing a message takes a very, very long time.
Тобишь как я понял если один воркер взял сообещние из реббита и умер (тобишь потерял tcp соеденение?) os.Exist(1) и тд? То тогда реббит отдаст этоже сообщние другому живому воркеру, и даже если один воркер выполняет полученную задачу допустим 10 минут или час, то реббит не даст никому другому этого же сообщения?
А теперь вопрос, допустим воркер получил сообщение, но произошла какая-то ошибка во время обработки этого сообщения, ну допустим в бд не записалось удачно, и мы не хотим ронять воркер при этом, мы допустим просто пишем в лог что всё не ок, и берём следующее сообщение на обработку, НО тогда вот текущее сообщение не обработается (не будет получено другим консьюмером) ? Поскольку у текущего воркера tcp соеденение всё ещё активно?
Так что же, на любую проблему при обработке сообщение валить воркер полностью? (И докер допустим перезапустит его)
Или есть вариант сказать реббиту, братан, я взял сообщение, но чёт не обработал его успешно, отдай его другому воркеру, а я пока следующим сообщением займусь?