class Portal
@api public @since 0.1.0
@api public @since 0.1.0
@api public @since 0.1.0
Constants
- ArgumentError
@api pulbic @since 0.1.0
- ConfusingJobConfigError
@api public @since 0.1.0
- CoreDependencyNotFoundError
@api public @since 0.1.0
- Error
@api public @since 0.1.0
- JobConfigurationNotFoundError
@api public @since 0.1.0
- NonSchedulableJobError
@api public @since 0.1.0
- NonScheduledJobClassError
@api public @since 0.1.0
- UnsupportedCoreDependencyError
@api public @since 0.1.0
- VERSION
@return [String]
@api public @since 0.1.0
Attributes
@return [Sidekiq::Portal::Config]
@api public @since 0.1.0
@return [Sidekiq::Portal::JobManager]
@api private @since 0.1.0
@return [Sidekiq::Portal::JobRunner]
@api private @since 0.1.0
Public Class Methods
@param configuration [Block] @yield [config] @yieldparam config [Qonfig::Settings] @yieldreturn [void] @return [void]
@api public @since 0.1.0
# File lib/sidekiq_portal.rb, line 44 def initialize(&configuration) @lock = Sidekiq::Portal::Lock.new thread_safe { setup!(&configuration) } end
Public Instance Methods
@param configuration [Block] @yield [config] @yieldparam config [Qonfig::DataSet] @yieldreturn [void] @return [void]
@api public @since 0.1.0
# File lib/sidekiq_portal.rb, line 73 def configure(&configuration) thread_safe { config.configure(&configuration) } end
@return [void]
@api public @since 0.1.0
# File lib/sidekiq_portal.rb, line 98 def run_all thread_safe do job_manager.each_time_point do |time_point| ::Timecop.freeze(time_point) do job_manager.each_job { |job| job_runner.run(job) } end end end end
@param job_klass [Class] @return [void]
@api public @since 0.1.0
# File lib/sidekiq_portal.rb, line 82 def run_job(job_klass) thread_safe do raise( Sidekiq::Portal::NonSchedulableJobError, "#{job_klas} is not schedulable" ) unless job_manager.runnable?(job_klass) portal_job = job_manager.resolve(job_klass) job_runner.run(portal_job) end end
@param configuration [Block] @return [void]
@api private @since 0.1.0
# File lib/sidekiq_portal.rb, line 54 def setup!(&configuration) thread_safe do Sidekiq::Portal::CoreExtensions.load! @config = Sidekiq::Portal::Config.new(&configuration) @job_manager = Sidekiq::Portal::JobManager::Builder.build(@config) @job_runner = Sidekiq::Portal::JobRunner::Builder.build(@config) end end
Private Instance Methods
@param block [Block] @return [Any]
@api private @since 0.1.0
# File lib/sidekiq_portal.rb, line 127 def thread_safe(&block) @lock.thread_safe(&block) end