sql >> Database teknologi >  >> NoSQL >> Redis

Sidekiq arbejdsforhold

Du kan bruge Sidekiq Unique Jobs

med denne tilgang vil kun 1 job med de samme parametre være til stede samtidigt.

så opret model

class UserJobs
  belongs_to :user
end

class User
  has_many :user_jobs
end

class 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
  end
end

end når du skal køre et job for brugeren:

user.user_jobs.create worker_class: Klass, params: params
Worker.perform_async(user_id: user.id)



  1. Henvisning til andre dokumenter efter streng i stedet for ObjectId

  2. Sådan finder du dokumenter, der matcher flere kriterier

  3. Hvordan søger du efter nøgler med en værdi? Få for eksempel alle NØGLER, hvor værdien er en eller anden værdi

  4. Tæl felter i en MongoDB-samling