您可以使用Sidekiq Unique Jobs
通过这种方法,将仅同时显示具有相同参数的一项工作。
所以创建模型
class UserJobs belongs_to :userendclass User has_many :user_jobsendclass Worker sidekiq_options unique: true def perform params user = User.find(params[:id]) user.user_jobs.order('id asc').each do |job| job.worker_class.constantize.new.perform(job.params) job.destroy end endend而不是您需要为用户运行任何作业时:
user.user_jobs.create worker_class: Klass, params: paramsWorker.perform_async(user_id: user.id)



