MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

chỉ thực hiện một trong nhiều công việc trùng lặp với sidekiq?

Đề xuất ban đầu của tôi sẽ là một mutex cho công việc cụ thể này. Nhưng có khả năng bạn có nhiều máy chủ ứng dụng làm việc với các công việc sidekiq, tôi sẽ đề xuất một cái gì đó ở cấp redis.

Ví dụ:sử dụng redis-semaphore trong định nghĩa nhân viên sidekiq của bạn. Một ví dụ chưa được thử nghiệm :

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. Đẩy các mục vào mảng mongo thông qua mongoose

  2. Liệt kê người dùng cho một số DB nhất định với PyMongo

  3. Pymongo chèn số lượng lớn không hoạt động

  4. SCUMM:Cơ sở hạ tầng giám sát cơ sở dữ liệu dựa trên tác nhân trong ClusterControl

  5. Bỏ qua và giới hạn phân trang cho tổng hợp Mongo