Ruby on rails 3 是否可以在rails主机之外的单独主机上运行sidekiq?

Ruby on rails 3 是否可以在rails主机之外的单独主机上运行sidekiq?,ruby-on-rails-3,sidekiq,Ruby On Rails 3,Sidekiq,我想设置sidekiq,使其在rails应用程序的单独主机上运行,以避免在运行内存密集型后台任务时拖累web服务器 我需要查看哪些配置详细信息 是否有已知的最佳实践或配置 编辑: 为了澄清,我想问的是,如何配置rails,以便在sidekiq进程不在本地运行的情况下,sidekiq API调用(MyWorker.perform\u async)可以运行?编辑以澄清 首先,您应该了解,当您运行perform\u async时,它只是将作业粘贴到Redis队列中。Sidekiq监视此队列,并在作业进

我想设置sidekiq,使其在rails应用程序的单独主机上运行,以避免在运行内存密集型后台任务时拖累web服务器

我需要查看哪些配置详细信息

是否有已知的最佳实践或配置

编辑:


为了澄清,我想问的是,如何配置rails,以便在sidekiq进程不在本地运行的情况下,sidekiq API调用(
MyWorker.perform\u async
)可以运行?

编辑以澄清

首先,您应该了解,当您运行
perform\u async
时,它只是将作业粘贴到Redis队列中。Sidekiq监视此队列,并在作业进入时运行作业。因此,只要你的应用程序和你的Sidekiq在同一台Redis服务器上运行(当然还有同一个数据库),一切都会正常运行

原始答案

首先,正如您可能猜到的,它将需要对代码进行重复的签出,以便它能够运行。没什么大不了的

其次,它需要访问另一个盒子上的数据库和redis服务器。这意味着确保这些端口在另一台服务器上打开。这可能会变得很棘手,你最好不要让那些人暴露在开放的互联网上。通常,对于多框设置,只有一个框暴露在开放的Internet上。它通过专用IP与您的其他机箱通信:

公共Web服务器

运行Apache/Nginx,可能还运行您的应用服务器

专用应用服务器(可选)

运行应用程序服务器(如果它们未在公共服务器上运行)。连接到数据库和Redis服务器

专用Sidekiq服务器(可选)

运行Sidekiq。连接到数据库和Redis服务器

私有数据库/Redis服务器


运行数据库和Redis。当然,如果需要的话,它们可以分到不同的服务器。

您有没有看过?有,但我找不到与我的要求相关的任何内容。如果我错了,请纠正我。我想我的问题是,当你调用
MyWorker.perform\u async
,如果sidekiq没有在本地运行,它将如何工作?它是如何配置的?它是按照我上面所说的配置的。将Sidekiq指向Redis运行的主机(而不是“localhost:6379”)。其实没什么不同。换一种说法:你没有在本地启动Sidekiq,而是创建了另一台主机,安装了Rails应用程序,将它的DB和Redis配置指向原始服务器,然后启动了Sidekiq。完成了,这就是所有的改变。最后的评论让它在我的脑海里点击。你是说,在幕后,当我调用MyWorker.perform_async时,实际发生的是一个条目被添加到redis,sidekiq订阅redis事件?准确地说。对不起,我应该早点说。