Я запускаю веб-приложение Rails под Phusion Passenger (версия 5.0.7). Некоторые HTTP-запросы запускают рабочие процессы, которые выполняются в качестве фоновых заданий в пуле потоков (с использованием флагов Concurrent Ruby). Учитывая, что Phusion Passenger является сервером forking, я теперь понимаю, что нет гарантии, что рабочий процесс не будет завершен, если не будут обслуживаться ожидающие запросы. Это может просто прервать любую фоновую обработку, которая может быть запущена в некотором пуле потоков в этом процессе.Рельсы: использование потоков Ruby для запуска фоновых заданий в приложениях Rails 4
Есть ли способ сделать эту работу на Phusion Passenger? В качестве альтернативы, будет ли Puma лучшим выбором для такого использования?
Почему бы не использовать отдельный процесс для фона? –
Не могли бы вы добавить ответ о том, как это сделать? Причина, по которой я задал этот вопрос. Я не заинтересован в Delayed Jobs, Sidekiq и т. Д., Потому что у меня уже есть рабочий код, который хорошо работает с рабочими процессами. – CppNoob
Ваш код также обрабатывает перезагрузку сервера (это лишает работу)? –