Module: Shoryuken
- Defined in:
- lib/shoryuken.rb,
lib/shoryuken/util.rb,
lib/shoryuken/queue.rb,
lib/shoryuken/client.rb,
lib/shoryuken/runner.rb,
lib/shoryuken/worker.rb,
lib/shoryuken/fetcher.rb,
lib/shoryuken/logging.rb,
lib/shoryuken/manager.rb,
lib/shoryuken/message.rb,
lib/shoryuken/polling.rb,
lib/shoryuken/version.rb,
lib/shoryuken/core_ext.rb,
lib/shoryuken/launcher.rb,
lib/shoryuken/processor.rb,
lib/shoryuken/worker_registry.rb,
lib/shoryuken/middleware/chain.rb,
lib/shoryuken/environment_loader.rb,
lib/shoryuken/default_worker_registry.rb,
lib/shoryuken/middleware/server/timing.rb,
lib/shoryuken/middleware/server/auto_delete.rb,
lib/shoryuken/middleware/server/active_record.rb,
lib/shoryuken/middleware/server/auto_extend_visibility.rb,
lib/shoryuken/middleware/server/exponential_backoff_retry.rb
Defined Under Namespace
Modules: HashExt, Logging, Middleware, Polling, StringExt, Util, Worker
Classes: Client, DefaultWorkerRegistry, EnvironmentLoader, Fetcher, Launcher, Manager, Message, Processor, Queue, Runner, Shutdown, WorkerRegistry
Constant Summary
collapse
- DEFAULTS =
{
concurrency: 25,
queues: [],
aws: {},
delay: 0,
timeout: 8,
lifecycle_events: {
startup: [],
quiet: [],
shutdown: []
},
polling_strategy: Polling::WeightedRoundRobin
}.freeze
- VERSION =
'3.0.6'.freeze
- @@queues =
[]
- @@worker_registry =
DefaultWorkerRegistry.new
- @@active_job_queue_name_prefixing =
false
- @@sqs_client =
nil
- @@sqs_client_receive_message_opts =
{}
- @@start_callback =
nil
- @@stop_callback =
nil
Class Method Summary
collapse
Class Method Details
.active_job_queue_name_prefixing ⇒ Object
85
86
87
|
# File 'lib/shoryuken.rb', line 85
def active_job_queue_name_prefixing
@@active_job_queue_name_prefixing
end
|
.active_job_queue_name_prefixing=(active_job_queue_name_prefixing) ⇒ Object
89
90
91
|
# File 'lib/shoryuken.rb', line 89
def active_job_queue_name_prefixing=(active_job_queue_name_prefixing)
@@active_job_queue_name_prefixing = active_job_queue_name_prefixing
end
|
.add_queue(queue, priority = 1) ⇒ Object
57
58
59
|
# File 'lib/shoryuken.rb', line 57
def add_queue(queue, priority = 1)
priority.times { queues << queue }
end
|
.client_middleware {|@@client_chain| ... } ⇒ Object
135
136
137
138
139
|
# File 'lib/shoryuken.rb', line 135
def client_middleware
@@client_chain ||= default_client_middleware
yield @@client_chain if block_given?
@@client_chain
end
|
131
132
133
|
# File 'lib/shoryuken.rb', line 131
def configure_client
yield self unless server?
end
|
121
122
123
|
# File 'lib/shoryuken.rb', line 121
def configure_server
yield self if server?
end
|
.default_worker_options ⇒ Object
141
142
143
144
145
146
147
148
149
150
|
# File 'lib/shoryuken.rb', line 141
def default_worker_options
@@default_worker_options ||= {
'queue' => 'default',
'delete' => false,
'auto_delete' => false,
'auto_visibility_timeout' => false,
'retry_intervals' => nil,
'batch' => false
}
end
|
.default_worker_options=(default_worker_options) ⇒ Object
152
153
154
|
# File 'lib/shoryuken.rb', line 152
def default_worker_options=(default_worker_options)
@@default_worker_options = default_worker_options
end
|
.on(event, &block) ⇒ Object
Register a block to run at a point in the Shoryuken lifecycle. :startup, :quiet or :shutdown are valid events.
Shoryuken.configure_server do |config|
config.on(:shutdown) do
puts "Goodbye cruel world!"
end
end
172
173
174
175
176
|
# File 'lib/shoryuken.rb', line 172
def on(event, &block)
fail ArgumentError, "Symbols only please: #{event}" unless event.is_a?(Symbol)
fail ArgumentError, "Invalid event name: #{event}" unless options[:lifecycle_events].key?(event)
options[:lifecycle_events][event] << block
end
|
.on_start(&block) ⇒ Object
156
157
158
|
# File 'lib/shoryuken.rb', line 156
def on_start(&block)
@@start_callback = block
end
|
.on_stop(&block) ⇒ Object
160
161
162
|
# File 'lib/shoryuken.rb', line 160
def on_stop(&block)
@@stop_callback = block
end
|
.options ⇒ Object
109
110
111
|
# File 'lib/shoryuken.rb', line 109
def options
@@options ||= DEFAULTS.dup
end
|
.queues ⇒ Object
53
54
55
|
# File 'lib/shoryuken.rb', line 53
def queues
@@queues
end
|
.register_worker(*args) ⇒ Object
117
118
119
|
# File 'lib/shoryuken.rb', line 117
def register_worker(*args)
@@worker_registry.register_worker(*args)
end
|
.server_middleware {|@@server_chain| ... } ⇒ Object
125
126
127
128
129
|
# File 'lib/shoryuken.rb', line 125
def server_middleware
@@server_chain ||= default_server_middleware
yield @@server_chain if block_given?
@@server_chain
end
|
.sqs_client ⇒ Object
93
94
95
|
# File 'lib/shoryuken.rb', line 93
def sqs_client
@@sqs_client ||= Aws::SQS::Client.new
end
|
.sqs_client=(sqs_client) ⇒ Object
97
98
99
|
# File 'lib/shoryuken.rb', line 97
def sqs_client=(sqs_client)
@@sqs_client = sqs_client
end
|
.sqs_client_receive_message_opts ⇒ Object
101
102
103
|
# File 'lib/shoryuken.rb', line 101
def sqs_client_receive_message_opts
@@sqs_client_receive_message_opts
end
|
.sqs_client_receive_message_opts=(sqs_client_receive_message_opts) ⇒ Object
105
106
107
|
# File 'lib/shoryuken.rb', line 105
def sqs_client_receive_message_opts=(sqs_client_receive_message_opts)
@@sqs_client_receive_message_opts = sqs_client_receive_message_opts
end
|
.start_callback ⇒ Object
69
70
71
|
# File 'lib/shoryuken.rb', line 69
def start_callback
@@start_callback
end
|
.start_callback=(start_callback) ⇒ Object
73
74
75
|
# File 'lib/shoryuken.rb', line 73
def start_callback=(start_callback)
@@start_callback = start_callback
end
|
.stop_callback ⇒ Object
77
78
79
|
# File 'lib/shoryuken.rb', line 77
def stop_callback
@@stop_callback
end
|
.stop_callback=(stop_callback) ⇒ Object
81
82
83
|
# File 'lib/shoryuken.rb', line 81
def stop_callback=(stop_callback)
@@stop_callback = stop_callback
end
|
.worker_registry ⇒ Object
61
62
63
|
# File 'lib/shoryuken.rb', line 61
def worker_registry
@@worker_registry
end
|
.worker_registry=(worker_registry) ⇒ Object
65
66
67
|
# File 'lib/shoryuken.rb', line 65
def worker_registry=(worker_registry)
@@worker_registry = worker_registry
end
|