class Swarm::Engine::Volatile::Job
Attributes
buried[R]
data[R]
id[R]
queue[R]
reserved_by[R]
Public Class Methods
new(queue:, data:)
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 7 def initialize(queue:, data:) @queue = queue @data = data @id = SecureRandom.uuid @reserved_by = nil @buried = false end
Public Instance Methods
==(other)
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 19 def ==(other) other.is_a?(self.class) && other.id == id end
available?()
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 39 def available? !reserved? && !buried end
bury()
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 35 def bury @buried = true end
delete()
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 47 def delete queue.delete_job(self) end
exists?()
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 51 def exists? queue.has_job?(self) end
release()
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 43 def release @reserved_by = nil end
reserve!(worker)
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 24 def reserve!(worker) if reserved_by && reserved_by != worker raise AlreadyReservedError end @reserved_by = worker end
reserved?()
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 31 def reserved? !reserved_by.nil? end
to_h()
click to toggle source
# File lib/swarm/engine/volatile/job.rb, line 15 def to_h Swarm::Support.symbolize_keys(data) end