是否可以使用puma rails服务器在相同的过程中运行Sidekiq?

时间:2015-12-30 17:36:56

标签: ruby-on-rails sidekiq puma

它的架构中有什么东西让它很难吗?

我想在内存非常少的VM中运行现有的rails + sidekiq应用程序,并且在两个不同的进程中加载​​整个rails堆栈就是使用了大量的RAM。

2 个答案:

答案 0 :(得分:2)

简而言之,没有。 Puma用于启动同源Web工作线程,并在它们之间划分传入的请求。如果你想修改它以产生单独的Sidekiq线程,那么可能可以使用一个疯狂的puma.rb文件,但是我没有找到这样做的先例。实际上,如果您的VM无法支持一次运行两个Rails进程,则可能无法在应用程序继续运行并分配更多内存时处理增加的内存负载。

但是,假设这仅用于开发目的,您可以通过打开Sidekiq's inline mode(通常仅用于测试)来完成您正在寻找的内容:

require 'sidekiq/testing'
Sidekiq::Testing.inline!

这将导致所有perform_async调用实际执行内联,而不是进入Redis并被Sidekiq进程接收。

答案 1 :(得分:1)

没有官方的。

这是sucker_punch的目的。