MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

jalankan hanya satu dari banyak pekerjaan duplikat dengan sidekiq?

Saran awal saya adalah mutex untuk pekerjaan khusus ini. Tetapi karena ada kemungkinan Anda memiliki beberapa server aplikasi yang menjalankan tugas sidekiq, saya akan menyarankan sesuatu di tingkat redis.

Misalnya, gunakan redis-semaphore dalam definisi pekerja sidekiq Anda. Contoh yang belum teruji :

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. Cluster MongoDB Kinerja Tinggi di Amazon EC2

  2. Tidak dapat terhubung ke Mongo DB melalui Spark

  3. Bersantai lalu Agregasi grup di MongoDB C #

  4. Cara memperbarui subdokumen di mongodb

  5. findAndModify atau findOneAndUpdate - bukan fungsi