我们说我们有2台服务器。一个app
服务器,http服务器,应用服务器和应用程序,它将为世界打开。另一台服务器worker
应该只运行Sidekiq作业(有应用程序,Redis和Sidekiq)。
如何配置Sidekiq从app
服务器中排队作业并在worker
服务器中运行它们?
答案 0 :(得分:3)
您的app
服务器必须具有Sidekiq gem才能将作业排入队列,并且还可以访问位于worker
服务器中的Redis数据库。我只会使用存在的任何Redis云服务,让app
服务器和worker
服务器都可以访问它。
无论哪种方式,您基本上都需要在app
和worker
服务器中配置Sidekiqs,以便他们知道从哪里读取/写入作业(什么是Redis数据库地址)。
检查文档的这一部分:
https://github.com/mperham/sidekiq/wiki/Using-Redis
总而言之,您有两台共享同一Redis数据库的服务器。一个为它排队的工作,另一个运行它们。
另一个问题是,一旦工人完成工作,他们如何处理结果。在这种情况下,您有几个选项:将结果推送回Redis队列,通过HTTP将结果发送到app
服务器......