Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 多个sidekiq实例能否处理同一队列_Ruby_Sidekiq - Fatal编程技术网

Ruby 多个sidekiq实例能否处理同一队列

Ruby 多个sidekiq实例能否处理同一队列,ruby,sidekiq,Ruby,Sidekiq,我不熟悉Sidekiq的内部结构,我想知道是否可以用相同的配置启动几个Sidekiq实例(处理相同的队列) 2个或更多Sidekiq实例是否可能处理来自队列的相同消息 更新: 我需要知道是否存在可能的冲突,当在多台机器上运行Sidekiq时是的,Sidekiq完全可以对同一队列运行多个进程。Redis只会将消息发送给一个随机进程 没有,我在不同的机器上运行过sidekiq,没有问题 每个Sidekiq都从同一个redis服务器读取,并且redis在多线程和分布式场景中非常健壮 此外,如果您查看S

我不熟悉Sidekiq的内部结构,我想知道是否可以用相同的配置启动几个Sidekiq实例(处理相同的队列)

2个或更多Sidekiq实例是否可能处理来自队列的相同消息

更新:

我需要知道是否存在可能的冲突,当在多台机器上运行Sidekiq时

是的,Sidekiq完全可以对同一队列运行多个进程。Redis只会将消息发送给一个随机进程

没有,我在不同的机器上运行过sidekiq,没有问题

每个Sidekiq都从同一个redis服务器读取,并且redis在多线程和分布式场景中非常健壮

此外,如果您查看Sidekiq的web界面,它将显示所有机器上的所有工作程序,因为所有工作程序都登录在同一个redis服务器上


所以没有,没有问题

你为什么要这么做?sidekiq相对于resque的优势应该是多线程,因此只需要一个进程。我需要知道在多台机器上运行sidekiq时是否存在可能的冲突。这不是关于线程与进程的问题。@Thilo,即使是在一台机器上,而“只需要一个进程”将cpu使用限制为单个内核的100%,这限制了处理队列的速度。我有一台8核的机器,希望siekiq能够使用4核的全容量,所以我需要4个进程。这很有趣。我有几个Sidekiq服务器在不同的机器上运行,即使它们正确地使用了Redis队列中的作业,我也没有看到与我的Rails应用程序不同的机器上的进程出现在UI中。您是否必须设置任何特殊配置才能执行此操作?如果不同的实例在非常相似的时间运行相同的查询(或者这是否有意义),例如意外的双表单提交,是否会出现问题?可能会发生错误,但Sidekiq是设计为并发的。双击应用程序代码更有可能出现错误。