【问题标题】:Communicate between rails and phoenix using exq and Sidekiq使用 exq 和 Sidekiq 在 rails 和 phoenix 之间进行通信
【发布时间】:2020-05-18 23:11:13
【问题描述】:

我正在尝试在 Rails 和 Phoenix 框架之间添加桥梁以进行通信。到目前为止,我可以在 Rails 中排队工作,并且这些工作由 phoenix 框架中的 Exq 拾取。

Sidekiq::Client.push({"queue" => "elixir_queue", "class" => "ElixirQueue", "args" => ["foo"]})

但是我在从 Elixir 排队工作以获取 Rails 时遇到问题。我试过了,它使工作排队

Exq.enqueue(Exq, "rails_queue", 'RailsQueueJob' , ["Hello there rails"],  max_retries: 0) 

但是 Rails 端的 Sidekiq 会抛出错误,说 "error_message\":\"undefined method jid=' for #< RailsQueueJob:0x00007fe599dfda50>。碰巧没有这方面的文档。我怎样才能从 elixir 中排队,让 Sidekiq 接手。

【问题讨论】:

    标签: ruby-on-rails phoenix-framework sidekiq exq


    【解决方案1】:

    我猜这意味着您需要使用 Sidekiq 作业格式进行牛排。 https://github.com/mperham/sidekiq/wiki/Job-Format IE。 Sidekiq 正在尝试从 RailsQueueJob 中获取 jid - 我猜你需要自己定义它。

    【讨论】:

      【解决方案2】:

      这是一个轨道问题。在这里解释 https://github.com/mperham/sidekiq/issues/3073

      【讨论】:

      • 我知道,但我想要 ActiveJob,它们使用起来非常简单
      • Sidekiq API 也很容易使用!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 2013-05-05
      相关资源
      最近更新 更多