Ответ 1
Предполагается, что Heroku перезапускает рабочего при каждом его сбое. Насколько мне известно, вам не нужно ничего выбирать или настраивать. Что бы ни было на ваших рабочих местах: рабочая задача будет выполнена, как только она потерпит неудачу.
В случае, если вы сильно зависите от фоновых заданий в своем веб-приложении. Вы можете создать задачу рейка, которая находит последнюю запись для обновления и выполнять фоновое задание для ее обновления. Или, возможно, автоматизировать задачу рейка, чтобы найти остальную часть записей, которые нуждаются в обновлении, с момента последнего сбоя.
В качестве альтернативы вы принудительно перезапускаете перезагрузку вручную, как указано в в этой статье (с использованием delayed_job):
heroku workers 0;
heroku workers 1;
Или, возможно, вы можете перезапустить конкретного работника, выполнив (упомянутый в в этой статье):
heroku restart worker.1
Кстати, попробуйте 1.9 stack. Перед этим убедитесь, что ваше приложение совместимо с 1.9.2. Надеемся, что там случаются сбои:
heroku stack:migrate bamboo-mri-1.9.2
В случае, если такие проблемы все еще возникают. Лучше всего связаться с поддержкой Heroku. Они очень чутко реагируют на то, что они делают.