[英]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.