将多个参数传递给Resque& Resque调度器

时间:2018-03-02 03:28:50

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

我有一个Resque Worker,它有两个参数

class SendPostWorker
  @queue = :send_post_worker

  def self.perform(post_id, group_id)
    group = Group.find(group_id.to_i)
    ::BotMessageDispatcher.new(group, post_id).work
  end
end

在控制器动作中,我使用Resque& Resque-scheduler将作业排入队列。

class PostsController < ApplicationController
  def create
    # Code
    Resque.enqueue_in(@post.scheduled_time - Time.now, SendPostWorker, @post.id, params['groups']['group'].to_i)
    # Code
  end
end

当我在工作人员中硬编码params ['groups'] ['group']参数时,工作人员最初工作正常(仅传递一个参数),但现在我尝试使工作变得更聪明(接收组ID)从控制器),它抱怨传递的参数数量

ArgumentError Error wrong number of arguments (given 2, expected 1) /Users/Lois/Desktop/projects/bot/app/workers/send_post_worker.rb:4:in `perform'

提前感谢您的帮助〜!

1 个答案:

答案 0 :(得分:0)

所以我在与同事交谈后解决了这个问题。张贴给未来的读者。

在对resque工作者进行更改后重新启动它们。