单个 dyno 上的多个 Sidekiq 进程
Multiple Sidekiq Processes on a single dyno
我在 Heroku 上的 Rails 应用有一个 Procfile
在我的 dyno 上启动一个 Sidekiq 进程
worker: bundle exec sidekiq -C config/sidekiq.yml
是否可以在同一个 dyno 上启动多个 sidekiq 进程?
我的组织有一个大型测功机,其中有很多我们没有使用的内存。在降级 dyno 之前,我想知道是否可以选择 运行 多个 Sidekiq 进程来使用它。
Sidekiq Enterprise's Multi-Process 功能使这变得微不足道。
一个选择是 运行 Sidekiq 和 https://github.com/ochinchina/supervisord
这样的主管
将二进制文件添加到您的存储库(例如 bin/supervisord)并添加一个配置文件和一个 Procfile 条目。
对于 8 核的测功机,您的配置可能如下所示:
[program:sidekiq]
command = bundle exec sidekiq -e ${RACK_ENV:-development} -C config/sidekiq_large.yml
process_name = %(program_name)s_%(process_num)s
numprocs = 8
numprocs_start = 1
exitcodes = 0
stopsignal = TERM
stopwaitsecs = 40
autorestart = unexpected
stdout_logfile = /dev/stdout
stderr_logfile = /dev/stderr
然后在您的 Procfile 中:
worker_large: env [...] bin/supervisord -c sidekiq_worker_large.conf
确保调整 Sidekiq 并发设置。
还有这个开源第三方 gem 可以做到这一点,而无需为 Sidekiq Enterprise 付费。没用过,不知道效果如何,不过看起来不错
https://github.com/vinted/sidekiq-pool
它没有任何最近的提交或许多 github 星,但可能工作正常?
这是另一个,警告您这是未完成的工作,但只是为了比较:
我在 Heroku 上的 Rails 应用有一个 Procfile
在我的 dyno 上启动一个 Sidekiq 进程
worker: bundle exec sidekiq -C config/sidekiq.yml
是否可以在同一个 dyno 上启动多个 sidekiq 进程?
我的组织有一个大型测功机,其中有很多我们没有使用的内存。在降级 dyno 之前,我想知道是否可以选择 运行 多个 Sidekiq 进程来使用它。
Sidekiq Enterprise's Multi-Process 功能使这变得微不足道。
一个选择是 运行 Sidekiq 和 https://github.com/ochinchina/supervisord
这样的主管将二进制文件添加到您的存储库(例如 bin/supervisord)并添加一个配置文件和一个 Procfile 条目。
对于 8 核的测功机,您的配置可能如下所示:
[program:sidekiq]
command = bundle exec sidekiq -e ${RACK_ENV:-development} -C config/sidekiq_large.yml
process_name = %(program_name)s_%(process_num)s
numprocs = 8
numprocs_start = 1
exitcodes = 0
stopsignal = TERM
stopwaitsecs = 40
autorestart = unexpected
stdout_logfile = /dev/stdout
stderr_logfile = /dev/stderr
然后在您的 Procfile 中:
worker_large: env [...] bin/supervisord -c sidekiq_worker_large.conf
确保调整 Sidekiq 并发设置。
还有这个开源第三方 gem 可以做到这一点,而无需为 Sidekiq Enterprise 付费。没用过,不知道效果如何,不过看起来不错
https://github.com/vinted/sidekiq-pool
它没有任何最近的提交或许多 github 星,但可能工作正常?
这是另一个,警告您这是未完成的工作,但只是为了比较: