繁体   English   中英

如何在 Rails 控制台中运行 ActiveJob 进行调试?

[英]How can I run an ActiveJob in Rails console for debugging?

我目前有一个我创建的 ActiveJob 并使用 Sidekiq 将其排队。 我想调试这项工作,但为了查看我编写的任何消息,我必须检查我的日志文件。 我觉得能够在 Rails 控制台中查看我的工作中的puts消息会更方便。 当我在 rails 控制台中运行perform_later方法时,它只是将作业排队,而我从未在控制台中看到消息。 有没有办法让它在控制台中看到它们?

您可以使用perform_now运行作业。

例如...

class Foo < ActiveJob::Base
  def perform(arg1)
    puts "Hello #{arg1}"
  end
end

Foo.perform_now('world')

您可以暂时将队列适配器设置为内联。

现在你在application.rb的代码看起来像这样:

Rails.application.config.active_job.queue_adapter = :sidekiq

只需注释掉该行

# Rails.application.config.active_job.queue_adapter = :sidekiq

这将内联运行您的作业,您应该会在控制台中看到结果。

您可以使用 new 运行,例如。 Foo.new.perform(ar_1, ar_2)

您可以在 development.rb 中添加一条配置行

require 'sidekiq/testing/inline'

这应该为开发启用内联测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM