如何设置负责从其他服务器运行作业'workers'服务器



假设我们有 2 台服务器。一个app服务器,其中是http服务器,应用程序服务器和应用程序,它将向世界开放。另一个服务器worker应该只运行 Sidekiq 作业(有应用程序、Redis 和 Sidekiq)。

如何将 Sidekiq 配置为从服务器app排队作业并在worker服务器中运行它们?

您的app服务器必须具有 Sidekiq gem 才能对作业进行排队,并且还有权访问位于worker服务器中的 Redis 数据库。我只会使用现有的任何 Redis 云服务,并让app服务器和worker服务器都可以访问它。

无论哪种方式,您基本上都需要在appworker服务器中配置 Sidekiq,以便它们知道从哪里读取/写入作业(Redis 数据库地址是什么)。

查看文档的此部分:

https://github.com/mperham/sidekiq/wiki/Using-Redis

总而言之,您有两台共享同一个 Redis 数据库的服务器。一个将作业排队到它,另一个运行它们。

另一个问题是,一旦工人完成工作,他们如何处理结果。在这种情况下,您有几种选择:将结果推送回 Redis 队列,通过 HTTP 将结果发送到app服务器......

最新更新