Class: SidekiqUniqueJobs::Key

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq_unique_jobs/key.rb

Overview

Key class wraps logic dealing with various lock keys

Author:

  • Mikael Henriksson <mikael@mhenrixon.com>

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(digest) ⇒ Key

Initialize a new Key

Parameters:

  • digest (String)

    the digest to use as key



26
27
28
29
30
# File 'lib/sidekiq_unique_jobs/key.rb', line 26

def initialize(digest)
  @digest  = digest
  @locked  = "#{digest}:LOCKED"
  @digests = DIGESTS
end

Instance Attribute Details

#digestObject (readonly)

Returns the value of attribute digest.



11
12
13
# File 'lib/sidekiq_unique_jobs/key.rb', line 11

def digest
  @digest
end

#digestsObject (readonly)

Returns the value of attribute digests.



19
20
21
# File 'lib/sidekiq_unique_jobs/key.rb', line 19

def digests
  @digests
end

#lockedObject (readonly)

Returns the value of attribute locked.



15
16
17
# File 'lib/sidekiq_unique_jobs/key.rb', line 15

def locked
  @locked
end

Class Method Details

.heartbeat(identity) ⇒ String

Returns the heartbeat key for a process

Parameters:

  • identity (String)

    the process identity (hostname:pid)

Returns:

  • (String)

    the heartbeat key



50
51
52
# File 'lib/sidekiq_unique_jobs/key.rb', line 50

def self.heartbeat(identity)
  "uniquejobs:heartbeat:#{identity}"
end

.working(identity) ⇒ String

Returns the per-process working list key

Parameters:

  • identity (String)

    the process identity (hostname:pid)

Returns:

  • (String)

    the working list key



39
40
41
# File 'lib/sidekiq_unique_jobs/key.rb', line 39

def self.working(identity)
  "uniquejobs:working:#{identity}"
end

Instance Method Details

#==(other) ⇒ Object



62
63
64
# File 'lib/sidekiq_unique_jobs/key.rb', line 62

def ==(other)
  digest == other.digest
end

#inspectObject



58
59
60
# File 'lib/sidekiq_unique_jobs/key.rb', line 58

def inspect
  digest
end

#to_aArray<String>

Returns keys for Lua scripts: [locked, digests]

Returns:



71
72
73
# File 'lib/sidekiq_unique_jobs/key.rb', line 71

def to_a
  [locked, digests]
end

#to_sObject



54
55
56
# File 'lib/sidekiq_unique_jobs/key.rb', line 54

def to_s
  digest
end