0

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

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 接手工作。

4

2 回答 2

0

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

于 2020-05-18T12:51:15.787 回答
0

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

于 2020-05-18T15:11:13.770 回答