Шорюкен пытается повторно обработать сообщение SQS в полете.
В настоящее время у меня есть приложение rails 6, использующее Shoryuken (5.2.3) с SQS для асинхронной обработки и загрузки изображений, инициированных пользователем. Похоже, все работает так, как ожидалось, если учесть побочные эффекты задания (включая Shoryuken::Worker). Журналы Shoryuken (из-за использования пакета команд exec shoryuken -q my-queue-name -R) генерируют некоторый запутанный вывод. В задании есть несколько операторов puts для отладки, и, наблюдая за начальным запуском, генерирующим ожидаемую последовательность операторов puts, я начинаю видеть вывод, который подразумевает, что задание (то, которое все еще находится в процессе выполнения) было инициировано снова, до завершения или ошибки. Это продолжается до тех пор, пока пул потоков не будет исчерпан, и выдается эта ошибка.
ERROR: Processor failed: could not obtain a connection from the pool within 5.000 seconds (waited 5.000 seconds); all pooled connections were in use
Меня беспокоит то, что это может блокировать соединения для пользователей и негативно влиять на работу пользователей или иметь неожиданные последствия при частичном выполнении задания (несмотря на то, что задание является идемпотентным). Я предполагаю, что мне может потребоваться настроить параметры повтора, но это всего лишь предположение, и ввод данных по этому вопросу был бы полезен.