Sha256: 1d6b87f5ce174dd8423be1919d91505c84d826e3cfa39948b791ecbc957acadf
Contents?: true
Size: 586 Bytes
Versions: 1
Compression:
Stored size: 586 Bytes
Contents
require 'digest' module Sidekiq module Middleware module Client class UniqueJobs HASH_KEY_EXPIRATION = 30 * 60 def initialize(redis) @redis = redis end def call(item, queue) payload_hash = Digest::MD5.hexdigest(MultiJson.encode(item)) return if already_scheduled?(payload_hash) @redis.setex(payload_hash, HASH_KEY_EXPIRATION, 1) yield end private def already_scheduled?(payload_hash) !!@redis.get(payload_hash) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sidekiq-0.6.0 | lib/sidekiq/middleware/client/unique_jobs.rb |