我注意到在我的一些sidekiq工作者中,他们似乎在一个dyno中运行多个进程(同时处理多个作业)(日志会暗示这一点)。
在不使用群集(企业功能)的情况下,可以同时在一个dyno中同时运行多个进程?
我已将所有设置为默认值而不使用群组,因此每个sidekiq worker都使用25个线程。究竟所有这些线程用于什么,但是,我不知道。任何人都可以帮助我理解这是如何转化为在单个Heroku dyno中工作的并发工作者吗?
答案 0 :(得分:1)
您正在看到一个Sidekiq进程,其中有25个线程同时运行作业。每个线程都将执行一个作业,因此您最多可以同时运行25个作业。
没有swarm,每个dyno只能运行一个进程。
您可以使用swarm在dyno中运行多个进程,但有多少进程取决于应用程序的内存要求以及dyno中的内核数量。
这将为您提供100个工作线程:4 * 25。
SIDEKIQ_COUNT=4 bundle exec sidekiqswarm -e production -c 25