module Jobly::JobExtensions::Solo
Public Class Methods
included(base)
click to toggle source
# File lib/jobly/job_extensions/solo.rb, line 8 def self.included(base) base.extend ClassMethods end
Public Instance Methods
solo?()
click to toggle source
# File lib/jobly/job_extensions/solo.rb, line 27 def solo? self.class.solo? end
solo_full_key()
click to toggle source
# File lib/jobly/job_extensions/solo.rb, line 39 def solo_full_key "jobly:solo:#{solo_key}" end
solo_key()
click to toggle source
# File lib/jobly/job_extensions/solo.rb, line 31 def solo_key @solo_key ||= (self.class.solo_key || solo_key!) end
solo_key!()
click to toggle source
# File lib/jobly/job_extensions/solo.rb, line 35 def solo_key! Digest::MD5.hexdigest "#{self.class.name}:#{params}" end
solo_lock(expire = 1.hour)
click to toggle source
# File lib/jobly/job_extensions/solo.rb, line 49 def solo_lock(expire = 1.hour) Sidekiq.redis do |redis| redis.setex(solo_full_key, expire, "1") end end
solo_locked?()
click to toggle source
# File lib/jobly/job_extensions/solo.rb, line 43 def solo_locked? Sidekiq.redis do |redis| redis.keys(solo_full_key).count >= 1 end end
solo_unlock()
click to toggle source
# File lib/jobly/job_extensions/solo.rb, line 55 def solo_unlock Sidekiq.redis do |redis| redis.del solo_full_key end end