Как уменьшить потребление памяти процессами Sidekiq?

У меня есть сервер, который запускает 10 практически идентичных веб-приложений (разные только активы и контент). Эти приложения используют Sidekiq для отправки электронных писем после успешной отправки. Проблема в использовании памяти. Каждый процесс потребляет 80-100 МБ оперативной памяти.

Я уже настроил concurrency: 1 для каждого проекта. Так как объем работ небольшой, хочу как-то объединить эти процессы в один. Как это сделать? Это надежное решение? Может быть, я должен искать какие-то утечки памяти?

Я не настолько опытен в этой области, поэтому любые советы приветствуются.


person yzalavin    schedule 10.02.2016    source источник
comment
Как насчет централизации всей отправки электронной почты в один процесс sidekiq для отправки электронных писем всех приложений?   -  person Dani    schedule 10.02.2016
comment
Я даже не думал об этом! Спасибо! Более того, у меня есть еще одно приложение, где запускается Sidekiq. Но как мне подключиться к этому процессу sidekiq из другого приложения?   -  person yzalavin    schedule 10.02.2016
comment
Sidekiq использует Redis для хранения очередей заданий. Пока sidekiq worker знает, что класс Job должен выполняться всякий раз, когда задание помещается в очередь Redis, ему все равно, какой процесс или приложение поставили его в очередь.   -  person Dani    schedule 10.02.2016


Ответы (1)


Вы можете централизовать всю отправку электронной почты в один процесс sidekiq, чтобы отправлять электронные письма всех приложений.

Вот хороший ответ о деталях совместного использования sidekiq между различными приложениями:

Как разделить работника между двумя разными приложениями на героку?< /а>

person Dani    schedule 10.02.2016