我目前拥有一个ActiveJob,我使用Sidekiq进行排队。 我想要调试该作业,但是如果要查看我在其中编程的任何消息,我必须检查我的日志文件。 我觉得在Rails控制台中能够看到作业中puts
消息会更方便。 但是当我在rails控制台中运行perform_later
方法时,它只是将作业排队,并且我从未在控制台中看到消息。 是否有办法使其在控制台中可见?
我目前拥有一个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'
这应该可以实现开发中的内联测试。