sql >> Database teknologi >  >> NoSQL >> MongoDB

udføre kun et af mange duplikerede opgaver med sidekiq?

Mit første forslag ville være en mutex til dette specifikke job. Men da der er en chance for, at du har flere applikationsservere, der arbejder med sidekiq-jobbene, vil jeg foreslå noget på redis-niveau.

Brug f.eks. redis-semaphore inden for din sidekiq-arbejderdefinition. Et uafprøvet eksempel :

def perform
  s = Redis::Semaphore.new(:map_reduce_semaphore, connection: "localhost")

  # verify that this sidekiq worker is the first to reach this semaphore.
  unless s.locked?

    # auto-unlocks in 90 seconds. set to what is reasonable for your worker.
    s.lock(90)
    your_map_reduce()
    s.unlock
  end
end

def your_map_reduce
  # ...
end


  1. node.js mongodb - collection.find().toArray(callback) - callback bliver ikke kaldt

  2. mongodb forespørgsel vs mysql

  3. hvordan kan jeg omskrive min mongoose-forespørgsel efter at have delt data fra en model i to?

  4. MongoDB Indexing vs Array Implementation til vores specifikke applikation