MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

wykonać tylko jedno z wielu zduplikowanych zadań za pomocą sidekiq?

Moja początkowa sugestia byłaby muteksem dla tej konkretnej pracy. Ale ponieważ istnieje szansa, że ​​możesz mieć wiele serwerów aplikacji obsługujących zadania sidekiq, sugerowałbym coś na poziomie redis.

Na przykład użyj redis-semaphore w Twojej definicji pracownika sidekiq. Nieprzetestowany przykład :

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak ograniczyć wartości przy użyciu mieszanego typu danych w Mongoose?

  2. jak stworzyć obiekt mongoDB w java

  3. Dlaczego oprogramowanie pośredniczące nodejs-mongodb ma inną składnię niż powłoka mongo?

  4. połączenie z Mongo DB z wersją Mongoose (4.11.0)

  5. Mongoose wiele połączeń