В нашем Rails-приложении есть очень интенсивные фоновые процессы, иногда требуется несколько часов для запуска. Мы используем delayed_job, и рассмотрим переход к Resque или бесплатную версию Sidekiq, в этом контексте этот вопрос имеет смысл.Как управлять пулом фоновых серверов в Rails
Мы выполняем 100% -ный процессор на всех процессорах для некоторых заданий, а в настоящее время фоновые процессоры находятся на одном физическом сервере, таком как Nginx, Rails и Postgres. Мы также ожидаем роста нагрузки.
Мы хотели бы переместить обработку фона в пул виртуальных машин пакетной обработки товарного уровня и, предпочтительно, развернуть их по мере необходимости. То, как я думаю, состоит в том, чтобы извлечь исполняемый код в мини-приложения и разместить их на виртуальных машинах пакетной обработки.
Что я не уверен в том, как это кодировать, а также как балансировать нагрузки очередей заданий на разных виртуальных машинах. Это что-то, что может сделать delayed_job/Reqsue/Sidekiq, или мне нужно его закодировать?
EDIT
Некоторые полезные ссылки, которые я нашел на эту тему
http://www.slideshare.net/kigster/12step-program-for-scaling-web-applications-on-postgresql
Use multiple Redis servers in Sidekiq
https://stackoverflow.com/a/19540427/993592
Проверьте это https://github.com/railsmachine/moonshine, он обеспечивает простой способ управления кластером и построили в плагине для управления Resque кластера с богом (http://godrb.com/) –