我试图在控制台中调用作业,但总是出现错误。
遵循以下文档:
创建了以下文件: (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 Statuss时,它导致错误:`任务由于错误而失败:
#的未定义局部变量或方法'args'
如果我尝试这样做:
Jobs::ArchiveSurveysJob.perform(`string_here`)
或者:
Jobs::ArchiveSurveysJob.perform_now('string_here')
我得到:
ArgumentError:参数数量错误(给定0,应为1..2)
如果我缺少一些文档或做错了事,请告诉我。
答案 0 :(得分:0)
我设法做到这一点的方法是创建一个Rake任务并在那里调用Job。