我目前有一个我已创建的ActiveJob,并使用Sidekiq对其进行排队。我想调试这份工作,但是为了让我看到我编入的任何消息,我必须检查我的日志文件。我觉得能够在Rails控制台中查看我的puts
消息会更方便。当我在rails控制台中运行perform_later
方法时,它只是将作业排队,我从未在控制台中看到这些消息。有没有办法让它在控制台中看到它们?
答案 0 :(得分:14)
您可以使用perform_now
运行作业。
例如......
class Foo < ActiveJob::Base
def perform(arg1)
puts "Hello #{arg1}"
end
end
Foo.perform_now('world')
答案 1 :(得分:3)
您可以暂时将队列适配器设置为内联。
现在,application.rb
中的代码看起来像这样:
Rails.application.config.active_job.queue_adapter = :sidekiq
只需注释掉
行# Rails.application.config.active_job.queue_adapter = :sidekiq
这将以内联方式运行您的作业,您应该在控制台中看到结果。
答案 2 :(得分:1)
您可以使用新的版本,例如Foo.new.perform(ar_1, ar_2)
答案 3 :(得分:0)
您可以在development.rb中添加配置行
Error: `false` has type 'character' not 'integer'
这应该启用内联测试开发。