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_prefixingObject



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

Yields:

  • (@@client_chain)


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

.configure_client {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Shoryuken)

    the object that the method was called on



131
132
133
# File 'lib/shoryuken.rb', line 131

def configure_client
  yield self unless server?
end

.configure_server {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Shoryuken)

    the object that the method was called on



121
122
123
# File 'lib/shoryuken.rb', line 121

def configure_server
  yield self if server?
end

.default_worker_optionsObject



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

.loggerObject



113
114
115
# File 'lib/shoryuken.rb', line 113

def logger
  Shoryuken::Logging.logger
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

.optionsObject



109
110
111
# File 'lib/shoryuken.rb', line 109

def options
  @@options ||= DEFAULTS.dup
end

.queuesObject



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

Yields:

  • (@@server_chain)


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_clientObject



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_optsObject



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_callbackObject



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_callbackObject



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_registryObject



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