如何在控制台中运行Resque作业?

时间:2019-03-10 14:13:40

标签: ruby-on-rails ruby resque resque-scheduler resque-status

我试图在控制台中调用作业,但总是出现错误。

遵循以下文档:

创建了以下文件: (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)

如果我缺少一些文档或做错了事,请告诉我。

1 个答案:

答案 0 :(得分:0)

我设法做到这一点的方法是创建一个Rake任务并在那里调用Job。