0

2 つの引数を取る 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'] 引数をハードコーディングしたとき (ワーカーに引数を 1 つだけ渡したとき)、ワーカーは最初は正常に動作しましたが、今ではジョブをよりスマートにしようとしています (コントローラーからグループ 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'

事前に助けてくれてありがとう〜!

4

1 に答える 1