【问题标题】:Enqueue and run jobs in Sidekiq from two Rails servers从两台 Rails 服务器在 Sidekiq 中排队和运行作业
【发布时间】:2013-09-21 23:05:58
【问题描述】:

我有两台服务器:Web 服务器(前端)和分析(后端)服务器。我需要通过 Sidekiq 将工作从前端服务器传递到后端服务器。

我的秘诀是:

  1. 在 Web 服务器和后端服务器中安装 Sidekiq。我现在有前端 Sidekiq 和后端 Sidekiq。
  2. 配置前端 Sidekiq 使其指向后端 Sidekiq 的 Redis 服务器。换句话说,两个 Sidekiq 共享同一个 Redis 数据库服务器。

现在,我需要从前端 Sidekiq 将作业排入队列,然后从后端 Sidekiq 执行代码。

我应该怎么做?

【问题讨论】:

  • 这并不能直接回答您的问题,因此我将其发布为评论。让多个应用程序共享同一个数据库(尤其是在写入模式下)通常是一个坏主意,因为它迟早会导致不可预测和不可重现的竞争条件和依赖关系的噩梦。难道你不能在后端应用程序上设置一个 API,前端应用程序调用来排队任务吗?

标签: ruby-on-rails redis sidekiq


【解决方案1】:

Sidekiq 是一个分布式消息队列,它的全部目的是用于您描述的用例。只需设置一个队列供前端读取,并设置一个队列供后端读取。当你从前端队列中读取它时,将它插入到后端队列中。

【讨论】:

    猜你喜欢
    • 2018-06-29
    • 1970-01-01
    • 2017-07-25
    • 2018-05-19
    • 2022-08-15
    • 2015-07-06
    • 2013-11-14
    • 1970-01-01
    • 2019-01-14
    相关资源
    最近更新 更多