Module: MultiBackgroundJob
- Defined in:
- lib/multi_background_job.rb,
lib/multi_background_job/lock.rb,
lib/multi_background_job/config.rb,
lib/multi_background_job/errors.rb,
lib/multi_background_job/worker.rb,
lib/multi_background_job/version.rb,
lib/multi_background_job/unique_job.rb,
lib/multi_background_job/lock_digest.rb,
lib/multi_background_job/workers/faktory.rb,
lib/multi_background_job/workers/sidekiq.rb,
lib/multi_background_job/adapters/adapter.rb,
lib/multi_background_job/adapters/faktory.rb,
lib/multi_background_job/adapters/sidekiq.rb,
lib/multi_background_job/middleware_chain.rb,
lib/multi_background_job/middleware/unique_job.rb,
lib/multi_background_job/workers/shared_class_methods.rb,
lib/multi_background_job/middleware/unique_job/faktory.rb,
lib/multi_background_job/middleware/unique_job/sidekiq.rb
Overview
Provides the Sidekiq middleware that make the unique job control work
Defined Under Namespace
Modules: Adapters, Middleware, Workers
Classes: Config, Error, InvalidConfig, Lock, LockDigest, MiddlewareChain, NotDefinedWorker, UniqueJob, Worker
Constant Summary
collapse
- SERVICES =
{
sidekiq: Adapters::Sidekiq,
faktory: Adapters::Faktory,
}
- VERSION =
'0.1.0'
Class Method Summary
collapse
Class Method Details
Returns An instance of worker.
50
51
52
|
# File 'lib/multi_background_job.rb', line 50
def self.[](worker_class, **options)
Worker.new(worker_class, **config.worker_options(worker_class).merge(options))
end
|
.config ⇒ Object
72
73
74
|
# File 'lib/multi_background_job.rb', line 72
def self.config
@config ||= Config.new
end
|
76
77
78
79
80
81
82
|
# File 'lib/multi_background_job.rb', line 76
def self.configure(&block)
return unless block_given?
config.instance_eval(&block)
@redis_pool = nil
config
end
|
.for(service, **options) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/multi_background_job.rb', line 58
def self.for(service, **options)
require_relative "multi_background_job/workers/#{service}"
service = service.to_sym
worker_options = options.merge(service: service)
module_name = service.to_s.split(/_/i).collect!{ |w| w.capitalize }.join
mod = Workers.const_get(module_name)
mod.module_eval do
define_method(:bg_worker_options) do
worker_options
end
end
mod
end
|
.jid ⇒ Object
54
55
56
|
# File 'lib/multi_background_job.rb', line 54
def self.jid
SecureRandom.hex(12)
end
|
.redis_pool ⇒ Object
84
85
86
87
88
|
# File 'lib/multi_background_job.rb', line 84
def self.redis_pool
@redis_pool ||= ConnectionPool.new(config.redis_pool) do
Redis.new(config.redis_config)
end
end
|