Ove*_*esh 12 ruby-on-rails-3 sidekiq
我想设置sidekiq,使其在我的rails应用程序的单独主机上运行,以避免在运行内存密集型后台任务时权衡Web服务器.
我需要查看哪些配置细节?
是否有已知的最佳实践或配置?
编辑:
为了澄清,我的意思是,我如何配置rails,以便MyWorker.perform_async如果sidekiq进程没有在本地运行,sidekiq API调用()将运行?
bio*_*net 20
编辑澄清
在其他所有事情之前,您应该明白,当您运行时perform_async,它只会将Jobs粘贴到Redis队列中.Sidekiq监视这个队列并在他们进来时运行工作.所以只要你的应用程序和你的Sidekiq正在查看相同的Redis服务器(当然还有相同的数据库),事情就会奏效.
原始答案
首先,正如您可能猜到的那样,它需要重复检查您的代码才能运行.没什么大不了.
其次,它需要访问另一个盒子上的数据库和redis服务器.这意味着确保这些端口在另一台服务器上打开.这可能会变得棘手,b/c你理想情况下不希望那些暴露在开放互联网上的人.通常,对于多盒设置,您只能将一个盒子暴露给开放的Internet.它通过私有IP与其余的盒子通信:
公共Web服务器
运行Apache/Nginx,也许是您的应用服务器.
私有应用服务器(可选)
如果您的应用服务器未在公共服务器上运行,则运行它们.连接到您的数据库和Redis服务器.
私人Sidekiq服务器(可选)
运行Sidekiq.连接到您的数据库和Redis服务器.
专用数据库/ Redis服务器
运行数据库和Redis.当然,如果需要,他们可以拆分到不同的服务器.
| 归档时间: |
|
| 查看次数: |
3883 次 |
| 最近记录: |