Sidekiq-scheduler传递参数

时间:2017-07-06 08:11:28

标签: ruby-on-rails-4 sidekiq

我有一个用例,我需要在上传产品后的第一天做一些任务。 我的工人班写在下面:

require 'sidekiq-scheduler'
class ProductWorker < ActiveRecord::Base
   include Sidekiq::Worker
   def self.day_after_upload(product_id)
      #do something
   end 
   def self.week_after_upload(product_id)
      #do something
   end 
end

我的产品控制器位于

之下
class ProductsController < ApplicationController
   def create
      product=Product.new(product_params)
      if product.save! 
          Sidekiq.set_schedule('day_after_upload', { 'at' => [prduct.created_at+1.day], 'class' => 'ProductWorker' })
          Sidekiq.set_schedule('week_after_upload', { 'at' => [product.created_at+1.week], 'class' => 'ProductWorker' })
      end
    end    
end

我无法通过&#39; product_id&#39;工人的参数。我无法找到如何在sidekiq-scheduler github页面上传递自定义参数。如何传递自定义参数,是否需要进行其他更改才能生效?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

计划作业内置于Sidekiq,我不知道你为什么使用sidekiq-scheduler。

OneDayWorker.perform_in(1.day, product_id)    
OneWeekWorker.perform_in(1.week, product_id)

https://github.com/mperham/sidekiq/wiki/Scheduled-Jobs