Как я могу запустить ActiveJob в консоли Rails для отладки?

В настоящее время у меня есть ActiveJob, который я создал, и я использую Sidekiq для его постановки в очередь. Я хочу отладить задание, но для того, чтобы увидеть любые сообщения, которые я программирую, я должен проверить свои файлы журнала. Я чувствую, что было бы удобнее видеть мои puts сообщения в моей работе в консоли Rails. Когда я запускаю метод perform_later в консоли rails, он просто ставит задание в очередь, и я никогда не вижу сообщений в консоли. Есть ли способ сделать так, чтобы я их видел в консоли?


person daveomcd    schedule 29.12.2015    source источник
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