Я пытаюсь вызвать задание в консоли, но всегда получаю ошибки.
Следовал следующей документации:
- http://tutorials.jumpstartlab.com/topics/performance/background_jobs.html
- https://www.youtube.com/watch?v=UrE47tCrZXc
- https://guides.rubyonrails.org/active_job_basics.html
- https://github.com/resque/resque
- Как запустить ActiveJob в консоли Rails для отладка?
Создал следующий файл: (lib/jobs/archive_survey_jobs.rb)
module Jobs
class ArchiveSurveysJob < ActiveJob::Base
@queue = :setup
def perform(survey_type)
if SurveyTypes.all_classes.map(&:to_s).include?(survey_type)
surveys = Survey.where(something: 'stuff')\
.where.not(something: 'stuff',
something: 'stuff')
surveys.each do |survey|
do_something
end
end
end
end
end
Я понимаю, что могу сделать что-то вроде Resque.enqueue(ArchiveSurveysJob, 'string_here')
Как я могу вызвать это в консоли? Если я попытаюсь: Jobs::ArchiveSurveysJob.create(survey_type: 'string_here')
, когда я проверю статусы Resque, это приведет к ошибке: «Задача не удалась из-за ошибки:
неопределенная локальная переменная или метод `args' for #
Если я попробую это:
Jobs::ArchiveSurveysJob.perform(`string_here`)
Or:
Jobs::ArchiveSurveysJob.perform_now('string_here')
Я получил:
ArgumentError: неправильное количество аргументов (указано 0, ожидается 1..2)
Пожалуйста, дайте мне знать, если мне не хватает документации или я делаю что-то не так.
perform_now
с классом вне модуля? - person Graham Slick   schedule 10.03.2019ArchiveSurveysJob.perform_now(
string_here')`, я скажу:uninitialized constant ArchiveSurveysJob
- person Joao Quaresma   schedule 10.03.2019Jobs::ArchiveSurveysJob.perform_now('string_here')
должно было сработать. - person Sergio Tulentsev   schedule 11.03.2019