【问题标题】:Running sidekiq jobs against more than one database?对多个数据库运行 sidekiq 作业?
【发布时间】:2019-07-30 13:42:30
【问题描述】:

我有一个 Rails 应用程序,它根据域名使用不同的数据库(即它支持多个网站)。这通过加载不同的环境来工作,没有问题。

我正在尝试弄清楚如何为每个人运行相同的 Sidekiq 作业集。

Sidekiq 在工作服务器实例上运行。

我尝试在 worker 的命令行上运行第二个 sidekiq 实例,为其提供不同的 pidfile、日志文件、环境和配置文件。

问题 1:在仪表板中,sidekiq 配置文件的第一个实例中列出的所有重复任务都消失了,recurring jobs 选项卡上只有我的第二个实例配置文件中的任务。

问题 2:对于那个工作,如果我尝试将它排入队列,我会得到 unitialized constant uninitialized constant JofProductUpdateLive -> 我猜这是因为我在 worker 上的 app/jobs/jof_product_update_live.rb 中定义了该类,并且它正在主服务器上寻找它?

问题 3:如果我的错误理论是正确的,并且我将该文件放在主服务器上,在我看来它将使用 environment/db1 运行,而我不确定如何使用 db2/environment2 运行它?

我正在寻求有关如何设置这样的东西的任何建议,因为我已经尝试了我遇到的每一个想法,但到目前为止,成功率为零。我还梳理了可以在 sidekiq 上找到的每个论坛,但无济于事。

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails-5 sidekiq


    【解决方案1】:

    查看 Apartment gem 和 apartment-sidekiq。

    https://github.com/influitive/apartment-sidekiq

    【讨论】:

    • 谢谢 Mike - 会检查的!与此同时,我实际上得到了我的帖子描述的单独使用 Sidekiq 的“非优雅”版本;关键在于在 redis 命名空间中设置环境名称。
    猜你喜欢
    • 2017-09-29
    • 2015-04-27
    • 2017-01-08
    • 2022-01-21
    • 1970-01-01
    • 2012-10-29
    • 2018-06-29
    • 2017-03-26
    • 1970-01-01
    相关资源
    最近更新 更多