class Portal::JobRegistry
@api private @since 0.1.0
Attributes
jobs[R]
@return [Hash]
@api private @since 0.1.0
Public Class Methods
new()
click to toggle source
@return [void]
@api private @since 0.1.0
# File lib/portal/job_registry.rb, line 10 def initialize @jobs = {} @lock = Sidekiq::Portal::Lock.new end
Public Instance Methods
each(&block)
click to toggle source
@param block [Block] @yield [job] @yieldparam job [Sidekiq::Portal::Job] @return [Enumerable]
@api private @since 0.1.0
# File lib/portal/job_registry.rb, line 56 def each(&block) thread_safe do block_given? ? jobs.each_value(&block) : jobs.each_value end end
include?(job_klass)
click to toggle source
@param job_klass [Class] @return [Boolean]
@api private @since 0.1.0
# File lib/portal/job_registry.rb, line 45 def include?(job_klass) thread_safe { jobs.key?(job_klass) } end
register(job)
click to toggle source
@param job [Sidekiq::Portal::Job] @return [void]
@api private @since 0.1.0
# File lib/portal/job_registry.rb, line 20 def register(job) thread_safe { jobs[job.klass] = job } end
resolve(job_klass)
click to toggle source
@param job_klass [Class] @return [Sidekiq::Portal::Job]
@api private @since 0.1.0
# File lib/portal/job_registry.rb, line 29 def resolve(job_klass) thread_safe do jobs.fetch(job_klass) do raise( Sidekiq::Portal::NonScheduledJobClassError, "Trying to work with non-scheduled job class \"#{job_klass}\"" ) end end end
Private Instance Methods
thread_safe(&block)
click to toggle source
@param block [Block] @return [Any]
@api private @since 0.1.0
# File lib/portal/job_registry.rb, line 75 def thread_safe(&block) @lock.thread_safe(&block) end