我有一个用例,我需要在上传产品后的第一天做一些任务。 我的工人班写在下面:
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页面上传递自定义参数。如何传递自定义参数,是否需要进行其他更改才能生效?任何帮助表示赞赏。
答案 0 :(得分:1)
计划作业内置于Sidekiq,我不知道你为什么使用sidekiq-scheduler。
OneDayWorker.perform_in(1.day, product_id)
OneWeekWorker.perform_in(1.week, product_id)