【问题标题】:How to set up 'workers' server responsible for running jobs from another servers如何设置负责从其他服务器运行作业的“工作人员”服务器
【发布时间】:2015-03-24 05:16:15
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails ruby redis sidekiq


    【解决方案1】:

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

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

    查看文档的这一部分:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      相关资源
      最近更新 更多