В настоящее время у меня есть ActiveJob, который я создал, и я использую Sidekiq для его постановки в очередь. Я хочу отладить задание, но для того, чтобы увидеть любые сообщения, которые я программирую, я должен проверить свои файлы журнала. Я чувствую, что было бы удобнее видеть мои puts
сообщения в моей работе в консоли Rails. Когда я запускаю метод perform_later
в консоли rails, он просто ставит задание в очередь, и я никогда не вижу сообщений в консоли. Есть ли способ сделать так, чтобы я их видел в консоли?
Как я могу запустить ActiveJob в консоли Rails для отладки?
comment
Я просто открываю вторую консоль и просматриваю журнал... интересно посмотреть, есть ли лучший ответ!
- person Mitch VanDuyn   schedule 30.12.2015
Ответы (4)
Вы можете запустить задание с помощью perform_now
.
Например...
class Foo < ActiveJob::Base
def perform(arg1)
puts "Hello #{arg1}"
end
end
Foo.perform_now('world')
person
Rob Di Marco
schedule
29.12.2015
Вы можете временно установить встроенный адаптер очереди.
Прямо сейчас ваш код в application.rb
будет выглядеть примерно так:
Rails.application.config.active_job.queue_adapter = :sidekiq
Просто закомментируйте строку
# Rails.application.config.active_job.queue_adapter = :sidekiq
Это запустит ваше задание, и вы должны увидеть результаты в консоли.
person
Amar H-V
schedule
29.12.2015
Вы можете работать с новыми, Eg.Foo.new.perform(ar_1, ar_2)
person
Anand Gargate
schedule
06.07.2020
Есть строка конфигурации, которую вы можете добавить в development.rb
require 'sidekiq/testing/inline'
Это должно позволить встроенное тестирование для разработки.
person
Lomefin
schedule
25.05.2018