Я работаю над приложением (развернутым в Heroku), которое разделяется на разделы public и admin. Одной из основных задач в разделе администратора (администрируется несколькими пользователями) является загрузка изображений. Эти изображения могут быть очень большими и нуждаться в обработке до нескольких размеров (некоторые очень большие). Я обрабатываю загрузку изображения на стороне клиента, загружая непосредственно на S3, а затем обрабатывая обработку изображений с помощью Sidekiq. Это позволяет избежать блокировки веб-dyno и проблем с таймаутами Unicorn.Как я должен управлять рабочими Heroku для нечастых заданий
Проблема заключается в том, что это означает, что мне нужно, чтобы рабочий динамик работал в любое время, хотя администраторы часто загружают только пару изображений в день (хотя они могут загружать много). Моя первоначальная мысль заключалась в том, чтобы использовать Hirefire, но он проверяет только на очередь every minute (хотя в моих тестах это кажется ближе к каждым 3 минутам). У администратора есть задачи для завершения после обработки изображения, поэтому мне нужно его обработать как можно быстрее, поэтому такая задержка (в сочетании с временем обработки) неприемлема.
Так я ищу решение, которое делает следующее:
- раскручивается работник дин для обработки любых работ в случае необходимости как только задание добавляется.
- Вращает рабочий динамик, когда очередь пуста.
Hirefire получает меня на полпути (я не против задержки крутиться вниз дино).
Какие у меня варианты?
дайте мне знать, если вы найдете что-нибудь, это действительно здорово, и я мог бы использовать что-то подобное. Спасибо за сообщение –