hutch 0.21.0-java → 0.25.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +3 -0
- data/.rspec +1 -0
- data/.travis.yml +11 -12
- data/.yardopts +5 -0
- data/CHANGELOG.md +118 -1
- data/Gemfile +15 -4
- data/Guardfile +13 -4
- data/README.md +274 -24
- data/Rakefile +8 -1
- data/hutch.gemspec +6 -7
- data/lib/hutch.rb +11 -8
- data/lib/hutch/adapters/march_hare.rb +1 -1
- data/lib/hutch/broker.rb +113 -110
- data/lib/hutch/cli.rb +42 -11
- data/lib/hutch/config.rb +209 -59
- data/lib/hutch/error_handlers.rb +1 -0
- data/lib/hutch/error_handlers/airbrake.rb +44 -16
- data/lib/hutch/error_handlers/base.rb +15 -0
- data/lib/hutch/error_handlers/honeybadger.rb +33 -18
- data/lib/hutch/error_handlers/logger.rb +12 -6
- data/lib/hutch/error_handlers/opbeat.rb +30 -0
- data/lib/hutch/error_handlers/sentry.rb +14 -6
- data/lib/hutch/logging.rb +5 -5
- data/lib/hutch/publisher.rb +75 -0
- data/lib/hutch/tracers.rb +1 -0
- data/lib/hutch/tracers/opbeat.rb +37 -0
- data/lib/hutch/version.rb +1 -1
- data/lib/hutch/waiter.rb +104 -0
- data/lib/hutch/worker.rb +50 -66
- data/lib/yard-settings/handler.rb +38 -0
- data/lib/yard-settings/yard-settings.rb +2 -0
- data/spec/hutch/broker_spec.rb +162 -77
- data/spec/hutch/cli_spec.rb +16 -3
- data/spec/hutch/config_spec.rb +83 -22
- data/spec/hutch/error_handlers/airbrake_spec.rb +25 -10
- data/spec/hutch/error_handlers/honeybadger_spec.rb +24 -2
- data/spec/hutch/error_handlers/logger_spec.rb +14 -1
- data/spec/hutch/error_handlers/opbeat_spec.rb +37 -0
- data/spec/hutch/error_handlers/sentry_spec.rb +18 -1
- data/spec/hutch/logger_spec.rb +12 -6
- data/spec/hutch/waiter_spec.rb +51 -0
- data/spec/hutch/worker_spec.rb +33 -4
- data/spec/spec_helper.rb +7 -5
- data/spec/tracers/opbeat_spec.rb +44 -0
- data/templates/default/class/html/settings.erb +0 -0
- data/templates/default/class/setup.rb +4 -0
- data/templates/default/fulldoc/html/css/hutch.css +13 -0
- data/templates/default/layout/html/setup.rb +7 -0
- data/templates/default/method_details/html/settings.erb +5 -0
- data/templates/default/method_details/setup.rb +4 -0
- data/templates/default/method_details/text/settings.erb +0 -0
- data/templates/default/module/html/settings.erb +40 -0
- data/templates/default/module/setup.rb +4 -0
- metadata +41 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 46d709e9c94dfb88ee45ddc94792769e9e6f9f09d1b86adb394e7e18d11db9fa
|
4
|
+
data.tar.gz: 7b9e237c3e1f2b199ec42a7c5f39a9a86fb487fcda647d7e41fd87b5be3fe31d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef4ed43e500a37036bb7c9507bd42b832e0cf1eb0cbb38474e52652dc42bd5dba76eaa6acb85e30a55910bdaa5c1f076aa08ea0ff769c58769d60fae7d614537
|
7
|
+
data.tar.gz: 1db9d47abc7b1b1d6bde0fbd4eca448e0d267ce1dcf11295d85b849c7f8989f8cdec0a9beb3137f4652a38c794e7b6d91aee4188b1edffe3a16c362f33597f9f
|
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--order random
|
data/.travis.yml
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
language: ruby
|
2
2
|
cache: bundler
|
3
|
-
|
4
|
-
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
before_install:
|
4
|
+
- gem install bundler
|
5
|
+
matrix:
|
6
|
+
include:
|
7
|
+
- rvm: 2.4.2
|
8
|
+
- rvm: 2.3.5
|
9
|
+
- rvm: 2.2.8
|
10
|
+
- rvm: jruby-9.1.15.0
|
11
|
+
jdk: oraclejdk8
|
12
|
+
env:
|
13
|
+
- JRUBY_OPTS='--debug'
|
11
14
|
|
12
15
|
services:
|
13
16
|
- rabbitmq
|
14
|
-
|
15
|
-
matrix:
|
16
|
-
allow_failures:
|
17
|
-
- rvm: jruby-9.0.0.0
|
data/.yardopts
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,121 @@
|
|
1
|
-
## 0.
|
1
|
+
## 0.25.0 — (unreleased)
|
2
|
+
|
3
|
+
No changes yet.
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
## 0.24.0 — February 1st, 2017
|
8
|
+
|
9
|
+
### Configurable Consumer Prefixes
|
10
|
+
|
11
|
+
Hutch consumers now can use user-provided prefixes for consumer tags.
|
12
|
+
|
13
|
+
Contributed by Dávid Lantos.
|
14
|
+
|
15
|
+
GitHub issue: [#265](https://github.com/gocardless/hutch/pull/265)
|
16
|
+
|
17
|
+
### Signal Handling in Workers
|
18
|
+
|
19
|
+
Hutch will now handle several OS signals:
|
20
|
+
|
21
|
+
* `USR2` will log stack traces of all alive VM threads
|
22
|
+
* `QUIT` (except on JRuby), `INT`, `TERM` will cause Hutch daemon to shut down
|
23
|
+
|
24
|
+
Contributed by Olle Jonsson.
|
25
|
+
|
26
|
+
GitHub issues: [#263](https://github.com/gocardless/hutch/pull/263), [#271](https://github.com/gocardless/hutch/pull/271)
|
27
|
+
|
28
|
+
### Opbeat Tracer
|
29
|
+
|
30
|
+
Hutch now provides a tracer implementation for [Opbeat](https://opbeat.com/).
|
31
|
+
|
32
|
+
Contributed by Olle Jonsson.
|
33
|
+
|
34
|
+
GitHub issue: [#262](https://github.com/gocardless/hutch/pull/262)
|
35
|
+
|
36
|
+
### `HUTCH_URI` Support
|
37
|
+
|
38
|
+
The `HUTCH_URI` environment variable now can be used to configure
|
39
|
+
Hutch connection URI.
|
40
|
+
|
41
|
+
Contributed by Sam Stickland.
|
42
|
+
|
43
|
+
GitHub issue: [#270](https://github.com/gocardless/hutch/pull/270)
|
44
|
+
|
45
|
+
|
46
|
+
## 0.23.1 — October 20th, 2016
|
47
|
+
|
48
|
+
This release contains a **breaking change** in the error
|
49
|
+
handlers interface.
|
50
|
+
|
51
|
+
### All Message Properties Passed to Error Handlers
|
52
|
+
|
53
|
+
Previously error handlers were provided a message ID as first
|
54
|
+
argument to `ErrorHandler#handle`. Now it is a hash of all message
|
55
|
+
properties.
|
56
|
+
|
57
|
+
This is a **breaking public API change**. If you do not use custom
|
58
|
+
error handlers, you are not affected.
|
59
|
+
|
60
|
+
Contributed by Pierre-Louis Gottfrois.
|
61
|
+
|
62
|
+
GH issue: [hutch#238](https://github.com/gocardless/hutch/pull/238)
|
63
|
+
|
64
|
+
### Opbeat Error Handler
|
65
|
+
|
66
|
+
Contributed by Olle Jonsson.
|
67
|
+
|
68
|
+
|
69
|
+
## 0.22.1 — June 7th, 2016
|
70
|
+
|
71
|
+
### Message Payload is Reported to Sentry
|
72
|
+
|
73
|
+
Contributed by Matt Thompson.
|
74
|
+
|
75
|
+
### Daemonization Flag Ignored on JRuby
|
76
|
+
|
77
|
+
Hutch will no longer try to daemonize its process on JRuby
|
78
|
+
(since it is not supported) and will emit a warning instead.
|
79
|
+
|
80
|
+
Contributed by Olle Jonsson.
|
81
|
+
|
82
|
+
### Custom Setup Steps in Hutch::Worker
|
83
|
+
|
84
|
+
`Hutch::Worker` now accepts a list of callables that are invoked
|
85
|
+
after queue setup.
|
86
|
+
|
87
|
+
Contributed by Kelly Stannard.
|
88
|
+
|
89
|
+
### More Flexible and Better Abstracted Hutch::Broker
|
90
|
+
|
91
|
+
`Hutch::Broker` was refactored with some bits extracted into separate
|
92
|
+
classes or methods, making them easier to override.
|
93
|
+
|
94
|
+
Contributed by Aleksandar Ivanov and Ryan Hosford.
|
95
|
+
|
96
|
+
### Configurable Consumer Thread Pool Exception Handling (MRI only)
|
97
|
+
|
98
|
+
`:consumer_pool_abort_on_exception` is a new option
|
99
|
+
(defaults to `false`) which defines whether Bunny's
|
100
|
+
consumer work pool threads should abort on exception.
|
101
|
+
The option is ignored on JRuby.
|
102
|
+
|
103
|
+
Contributed by Seamus Abshere.
|
104
|
+
|
105
|
+
### Worker: Log received messages using level DEBUG instead of INFO
|
106
|
+
|
107
|
+
Received messages used to be logged using severity level INFO.
|
108
|
+
This has been lowered to DEBUG.
|
109
|
+
|
110
|
+
Contributed by Jesper Josefsson.
|
111
|
+
|
112
|
+
### Refactoring
|
113
|
+
|
114
|
+
Olle Jonsson and Kelly Stannard have contributed
|
115
|
+
multiple internal improvements that have no behaviour changes.
|
116
|
+
|
117
|
+
|
118
|
+
## 0.21.0 — February 7th, 2016
|
2
119
|
|
3
120
|
### JRuby Compatibility Restored
|
4
121
|
|
data/Gemfile
CHANGED
@@ -1,19 +1,30 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
+
ruby RUBY_VERSION
|
4
|
+
|
3
5
|
gemspec
|
4
6
|
|
5
7
|
group :development do
|
6
8
|
gem "rake"
|
7
|
-
gem "guard", "~>
|
8
|
-
gem "guard-rspec", "~>
|
9
|
+
gem "guard", "~> 2.14", platform: :mri_23
|
10
|
+
gem "guard-rspec", "~> 4.7", platform: :mri_23
|
11
|
+
|
12
|
+
gem "yard", "~> 0.9"
|
13
|
+
gem 'kramdown', "> 0", platform: :jruby
|
14
|
+
gem "redcarpet", "> 0", platform: :mri
|
15
|
+
gem "github-markup", "> 0"
|
9
16
|
end
|
10
17
|
|
11
18
|
group :development, :test do
|
19
|
+
gem "rspec", "~> 3.5"
|
20
|
+
gem "simplecov", "~> 0.12"
|
21
|
+
|
12
22
|
gem "sentry-raven"
|
13
23
|
gem "honeybadger"
|
14
|
-
gem "coveralls", require: false
|
24
|
+
gem "coveralls", "~> 0.8.15", require: false
|
15
25
|
gem "newrelic_rpm"
|
16
|
-
gem "airbrake"
|
26
|
+
gem "airbrake", "~> 7.0"
|
27
|
+
gem "opbeat", "~> 3.0.9"
|
17
28
|
end
|
18
29
|
|
19
30
|
group :development, :darwin do
|
data/Guardfile
CHANGED
@@ -1,5 +1,14 @@
|
|
1
|
-
guard
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
guard :rspec, cmd: "bundle exec rspec" do
|
2
|
+
require "guard/rspec/dsl"
|
3
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
4
|
+
|
5
|
+
# RSpec files
|
6
|
+
rspec = dsl.rspec
|
7
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
8
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
9
|
+
watch(rspec.spec_files)
|
10
|
+
|
11
|
+
# Ruby files
|
12
|
+
ruby = dsl.ruby
|
13
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
5
14
|
end
|
data/README.md
CHANGED
@@ -1,29 +1,47 @@
|
|
1
1
|

|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/hutch)
|
4
|
+
[](https://travis-ci.org/gocardless/hutch)
|
5
|
+
[](https://gemnasium.com/gocardless/hutch)
|
6
|
+
[](https://codeclimate.com/github/gocardless/hutch)
|
7
|
+
|
3
8
|
Hutch is a Ruby library for enabling asynchronous inter-service communication
|
4
9
|
in a service-oriented architecture, using RabbitMQ.
|
5
10
|
|
6
|
-
[](http://badge.fury.io/rb/hutch)
|
7
|
-
[](https://travis-ci.org/gocardless/hutch)
|
8
|
-
[](https://gemnasium.com/gocardless/hutch)
|
9
|
-
[](https://codeclimate.com/github/gocardless/hutch)
|
10
|
-
|
11
11
|
To install with RubyGems:
|
12
12
|
|
13
13
|
```
|
14
|
-
|
14
|
+
gem install hutch
|
15
15
|
```
|
16
16
|
|
17
|
-
|
17
|
+
<!-- Tocer[start]: Auto-generated, don't remove. -->
|
18
18
|
|
19
|
-
|
20
|
-
that was extracted from production systems.
|
19
|
+
### Table of Contents
|
21
20
|
|
21
|
+
- [Requirements](#requirements)
|
22
|
+
- [Overview](#overview)
|
23
|
+
- [Project Maturity](#project-maturity)
|
24
|
+
- [Consumers](#consumers)
|
25
|
+
- [Message Processing Tracers](#message-processing-tracers)
|
26
|
+
- [Running Hutch](#running-hutch)
|
27
|
+
- [Loading Consumers](#loading-consumers)
|
28
|
+
- [Stopping Hutch](#stopping-hutch)
|
29
|
+
- [Producers](#producers)
|
30
|
+
- [Producer Configuration](#producer-configuration)
|
31
|
+
- [Publisher Confirms](#publisher-confirms)
|
32
|
+
- [Writing Well-Behaved Publishers](#writing-well-behaved-publishers)
|
33
|
+
- [Configuration](#configuration)
|
34
|
+
- [Config File](#config-file)
|
35
|
+
- [Environment variables](#environment-variables)
|
36
|
+
- [Configuration precedence](#configuration-precedence)
|
37
|
+
- [Generated list of configuration options](#generated-list-of-configuration-options)
|
22
38
|
|
23
|
-
|
39
|
+
<!-- Tocer[finish]: Auto-generated, don't remove. -->
|
24
40
|
|
25
|
-
|
41
|
+
## Requirements
|
26
42
|
|
43
|
+
- Hutch requires Ruby 2.0+ or JRuby 9K.
|
44
|
+
- Hutch requires RabbitMQ 3.3 or later.
|
27
45
|
|
28
46
|
## Overview
|
29
47
|
|
@@ -39,8 +57,12 @@ and so on. Publishers connect to RabbitMQ via `Hutch.connect` and publish using
|
|
39
57
|
Hutch uses [Bunny](http://rubybunny.info) or [March Hare](http://rubymarchhare.info)
|
40
58
|
(on JRuby) under the hood.
|
41
59
|
|
60
|
+
### Project Maturity
|
42
61
|
|
43
|
-
|
62
|
+
Hutch is a moderately mature project (started in early 2013)
|
63
|
+
that was extracted from production systems.
|
64
|
+
|
65
|
+
## Consumers
|
44
66
|
|
45
67
|
Consumers receive messages from a RabbitMQ queue. That queue may be bound to
|
46
68
|
one or more topics (represented by routing keys).
|
@@ -58,8 +80,8 @@ message[:id] # => "02ABCXYZ"
|
|
58
80
|
To subscribe to a topic, pass a routing key to `consume` in the class
|
59
81
|
definition. To bind to multiple routing keys, simply pass extra routing keys
|
60
82
|
in as additional arguments. Refer to the [RabbitMQ docs on topic exchanges
|
61
|
-
]
|
62
|
-
example consumer:
|
83
|
+
](http://www.rabbitmq.com/tutorials/tutorial-five-ruby.html) for more information
|
84
|
+
about how to use routing keys. Here's an example consumer:
|
63
85
|
|
64
86
|
```ruby
|
65
87
|
class FailedPaymentConsumer
|
@@ -98,7 +120,9 @@ class FailedPaymentConsumer
|
|
98
120
|
end
|
99
121
|
```
|
100
122
|
|
101
|
-
|
123
|
+
This sets the `x-max-length` header. For more details, see the [RabbitMQ
|
124
|
+
documentation on Queue Length Limit](https://www.rabbitmq.com/maxlength.html). To find out more
|
125
|
+
about custom queue arguments, consult the [RabbitMQ documentation on AMQP Protocol Extensions](https://www.rabbitmq.com/extensions.html).
|
102
126
|
|
103
127
|
Consumers can write to Hutch's log by calling the logger method. The logger method returns
|
104
128
|
a [Logger object](http://ruby-doc.org/stdlib-2.1.2/libdoc/logger/rdoc/Logger.html).
|
@@ -107,7 +131,7 @@ a [Logger object](http://ruby-doc.org/stdlib-2.1.2/libdoc/logger/rdoc/Logger.htm
|
|
107
131
|
class FailedPaymentConsumer
|
108
132
|
include Hutch::Consumer
|
109
133
|
consume 'gc.ps.payment.failed'
|
110
|
-
|
134
|
+
|
111
135
|
def process(message)
|
112
136
|
logger.info "Marking payment #{message[:id]} as failed"
|
113
137
|
mark_payment_as_failed(message[:id])
|
@@ -136,11 +160,13 @@ to learn more.
|
|
136
160
|
|
137
161
|
Tracers allow you to track message processing.
|
138
162
|
|
139
|
-
|
163
|
+
This will enable NewRelic custom instrumentation:
|
164
|
+
|
140
165
|
```ruby
|
141
166
|
Hutch::Config.set(:tracer, Hutch::Tracers::NewRelic)
|
142
167
|
```
|
143
|
-
|
168
|
+
|
169
|
+
Batteries included!
|
144
170
|
|
145
171
|
## Running Hutch
|
146
172
|
|
@@ -276,10 +302,10 @@ AMQP.connect(host: config[:host]) do |connection|
|
|
276
302
|
end
|
277
303
|
```
|
278
304
|
|
279
|
-
If using publisher confirms with amqp gem, see [this issue]
|
280
|
-
and [this gist]
|
305
|
+
If using publisher confirms with amqp gem, see [this issue](https://github.com/ruby-amqp/amqp/issues/92)
|
306
|
+
and [this gist](https://gist.github.com/3042381) for more info.
|
281
307
|
|
282
|
-
## Configuration
|
308
|
+
## Configuration
|
283
309
|
|
284
310
|
### Config File
|
285
311
|
|
@@ -317,10 +343,234 @@ Known configuration parameters are:
|
|
317
343
|
* `write_timeout`: Bunny's socket write timeout (default: `11`)
|
318
344
|
* `tracer`: tracer to use to track message processing
|
319
345
|
|
346
|
+
### Environment variables
|
347
|
+
|
348
|
+
The file configuration options mentioned above can also be passed in via environment variables, using the `HUTCH_` prefix, eg.
|
349
|
+
|
350
|
+
* `connection_timeout` → `HUTCH_CONNECTION_TIMEOUT`.
|
351
|
+
|
352
|
+
### Configuration precedence
|
353
|
+
|
354
|
+
In order from lowest to highest precedence:
|
355
|
+
|
356
|
+
0. Default values
|
357
|
+
0. `HUTCH_*` environment variables
|
358
|
+
0. Configuration file
|
359
|
+
0. Explicit settings through `Hutch::Config.set`
|
360
|
+
|
361
|
+
### Generated list of configuration options
|
362
|
+
|
363
|
+
Generate with
|
364
|
+
|
365
|
+
0. `yard doc lib/hutch/config.rb`
|
366
|
+
0. Copy the _Configuration_ section from `doc/Hutch/Config.html` here, with the anchor tags stripped.
|
367
|
+
|
368
|
+
<table border="1" class="settings" style="overflow:visible;">
|
369
|
+
<thead>
|
370
|
+
<tr>
|
371
|
+
<th>
|
372
|
+
Setting name
|
373
|
+
</th>
|
374
|
+
<th>
|
375
|
+
Default value
|
376
|
+
</th>
|
377
|
+
<th>
|
378
|
+
Type
|
379
|
+
</th>
|
380
|
+
<th>
|
381
|
+
ENV variable
|
382
|
+
</th>
|
383
|
+
<th>
|
384
|
+
Description
|
385
|
+
</th>
|
386
|
+
</tr>
|
387
|
+
</thead>
|
388
|
+
<tbody>
|
389
|
+
<tr>
|
390
|
+
<td><tt>mq_host</tt></td>
|
391
|
+
<td>127.0.0.1</td>
|
392
|
+
<td>String</td>
|
393
|
+
<td><tt>HUTCH_MQ_HOST</tt></td>
|
394
|
+
<td><p>RabbitMQ hostname</p></td>
|
395
|
+
</tr>
|
396
|
+
<tr>
|
397
|
+
<td><tt>mq_exchange</tt></td>
|
398
|
+
<td>hutch</td>
|
399
|
+
<td>String</td>
|
400
|
+
<td><tt>HUTCH_MQ_EXCHANGE</tt></td>
|
401
|
+
<td><p>RabbitMQ Exchange to use for publishing</p></td>
|
402
|
+
</tr>
|
403
|
+
<tr>
|
404
|
+
<td><tt>mq_vhost</tt></td>
|
405
|
+
<td>/</td>
|
406
|
+
<td>String</td>
|
407
|
+
<td><tt>HUTCH_MQ_VHOST</tt></td>
|
408
|
+
<td><p>RabbitMQ vhost to use</p></td>
|
409
|
+
</tr>
|
410
|
+
<tr>
|
411
|
+
<td><tt>mq_username</tt></td>
|
412
|
+
<td>guest</td>
|
413
|
+
<td>String</td>
|
414
|
+
<td><tt>HUTCH_MQ_USERNAME</tt></td>
|
415
|
+
<td><p>RabbitMQ username to use.</p></td>
|
416
|
+
</tr>
|
417
|
+
<tr>
|
418
|
+
<td><tt>mq_password</tt></td>
|
419
|
+
<td>guest</td>
|
420
|
+
<td>String</td>
|
421
|
+
<td><tt>HUTCH_MQ_PASSWORD</tt></td>
|
422
|
+
<td><p>RabbitMQ password</p></td>
|
423
|
+
</tr>
|
424
|
+
<tr>
|
425
|
+
<td><tt>uri</tt></td>
|
426
|
+
<td>nil</td>
|
427
|
+
<td>String</td>
|
428
|
+
<td><tt>HUTCH_URI</tt></td>
|
429
|
+
<td><p>RabbitMQ URI (takes precedence over MQ username, password, host, port and vhost settings)</p></td>
|
430
|
+
</tr>
|
431
|
+
<tr>
|
432
|
+
<td><tt>mq_api_host</tt></td>
|
433
|
+
<td>127.0.0.1</td>
|
434
|
+
<td>String</td>
|
435
|
+
<td><tt>HUTCH_MQ_API_HOST</tt></td>
|
436
|
+
<td><p>RabbitMQ HTTP API hostname</p></td>
|
437
|
+
</tr>
|
438
|
+
<tr>
|
439
|
+
<td><tt>mq_port</tt></td>
|
440
|
+
<td>5672</td>
|
441
|
+
<td>Number</td>
|
442
|
+
<td><tt>HUTCH_MQ_PORT</tt></td>
|
443
|
+
<td><p>RabbitMQ port</p></td>
|
444
|
+
</tr>
|
445
|
+
<tr>
|
446
|
+
<td><tt>mq_api_port</tt></td>
|
447
|
+
<td>15672</td>
|
448
|
+
<td>Number</td>
|
449
|
+
<td><tt>HUTCH_MQ_API_PORT</tt></td>
|
450
|
+
<td><p>RabbitMQ HTTP API port</p></td>
|
451
|
+
</tr>
|
452
|
+
<tr>
|
453
|
+
<td><tt>heartbeat</tt></td>
|
454
|
+
<td>30</td>
|
455
|
+
<td>Number</td>
|
456
|
+
<td><tt>HUTCH_HEARTBEAT</tt></td>
|
457
|
+
<td><p><a href="http://rabbitmq.com/heartbeats.html">RabbitMQ heartbeat timeout</a></p></td>
|
458
|
+
</tr>
|
459
|
+
<tr>
|
460
|
+
<td><tt>channel_prefetch</tt></td>
|
461
|
+
<td>0</td>
|
462
|
+
<td>Number</td>
|
463
|
+
<td><tt>HUTCH_CHANNEL_PREFETCH</tt></td>
|
464
|
+
<td><p>The <tt>basic.qos</tt> prefetch value to use.</p></td>
|
465
|
+
</tr>
|
466
|
+
<tr>
|
467
|
+
<td><tt>connection_timeout</tt></td>
|
468
|
+
<td>11</td>
|
469
|
+
<td>Number</td>
|
470
|
+
<td><tt>HUTCH_CONNECTION_TIMEOUT</tt></td>
|
471
|
+
<td><p>Bunny's socket open timeout</p></td>
|
472
|
+
</tr>
|
473
|
+
<tr>
|
474
|
+
<td><tt>read_timeout</tt></td>
|
475
|
+
<td>11</td>
|
476
|
+
<td>Number</td>
|
477
|
+
<td><tt>HUTCH_READ_TIMEOUT</tt></td>
|
478
|
+
<td><p>Bunny's socket read timeout</p></td>
|
479
|
+
</tr>
|
480
|
+
<tr>
|
481
|
+
<td><tt>write_timeout</tt></td>
|
482
|
+
<td>11</td>
|
483
|
+
<td>Number</td>
|
484
|
+
<td><tt>HUTCH_WRITE_TIMEOUT</tt></td>
|
485
|
+
<td><p>Bunny's socket write timeout</p></td>
|
486
|
+
</tr>
|
487
|
+
<tr>
|
488
|
+
<td><tt>graceful_exit_timeout</tt></td>
|
489
|
+
<td>11</td>
|
490
|
+
<td>Number</td>
|
491
|
+
<td><tt>HUTCH_GRACEFUL_EXIT_TIMEOUT</tt></td>
|
492
|
+
<td><p>FIXME: DOCUMENT THIS</p></td>
|
493
|
+
</tr>
|
494
|
+
<tr>
|
495
|
+
<td><tt>consumer_pool_size</tt></td>
|
496
|
+
<td>1</td>
|
497
|
+
<td>Number</td>
|
498
|
+
<td><tt>HUTCH_CONSUMER_POOL_SIZE</tt></td>
|
499
|
+
<td><p>Bunny consumer work pool size</p></td>
|
500
|
+
</tr>
|
501
|
+
<tr>
|
502
|
+
<td><tt>mq_tls</tt></td>
|
503
|
+
<td>false</td>
|
504
|
+
<td>Boolean</td>
|
505
|
+
<td><tt>HUTCH_MQ_TLS</tt></td>
|
506
|
+
<td><p>Should TLS be used?</p></td>
|
507
|
+
</tr>
|
508
|
+
<tr>
|
509
|
+
<td><tt>mq_verify_peer</tt></td>
|
510
|
+
<td>true</td>
|
511
|
+
<td>Boolean</td>
|
512
|
+
<td><tt>HUTCH_MQ_VERIFY_PEER</tt></td>
|
513
|
+
<td><p>Should SSL certificate be verified?</p></td>
|
514
|
+
</tr>
|
515
|
+
<tr>
|
516
|
+
<td><tt>mq_api_ssl</tt></td>
|
517
|
+
<td>false</td>
|
518
|
+
<td>Boolean</td>
|
519
|
+
<td><tt>HUTCH_MQ_API_SSL</tt></td>
|
520
|
+
<td><p>Should SSL be used for the RabbitMQ API?</p></td>
|
521
|
+
</tr>
|
522
|
+
<tr>
|
523
|
+
<td><tt>autoload_rails</tt></td>
|
524
|
+
<td>true</td>
|
525
|
+
<td>Boolean</td>
|
526
|
+
<td><tt>HUTCH_AUTOLOAD_RAILS</tt></td>
|
527
|
+
<td><p>Should the current Rails app directory be required?</p></td>
|
528
|
+
</tr>
|
529
|
+
<tr>
|
530
|
+
<td><tt>daemonise</tt></td>
|
531
|
+
<td>false</td>
|
532
|
+
<td>Boolean</td>
|
533
|
+
<td><tt>HUTCH_DAEMONISE</tt></td>
|
534
|
+
<td><p>Should the Hutch runner process daemonise?</p></td>
|
535
|
+
</tr>
|
536
|
+
<tr>
|
537
|
+
<td><tt>publisher_confirms</tt></td>
|
538
|
+
<td>false</td>
|
539
|
+
<td>Boolean</td>
|
540
|
+
<td><tt>HUTCH_PUBLISHER_CONFIRMS</tt></td>
|
541
|
+
<td><p>Should RabbitMQ publisher confirms be enabled?</p></td>
|
542
|
+
</tr>
|
543
|
+
<tr>
|
544
|
+
<td><tt>force_publisher_confirms</tt></td>
|
545
|
+
<td>false</td>
|
546
|
+
<td>Boolean</td>
|
547
|
+
<td><tt>HUTCH_FORCE_PUBLISHER_CONFIRMS</tt></td>
|
548
|
+
<td><p>Enables publisher confirms, forces Hutch::Broker#wait_for_confirms for</p></td>
|
549
|
+
</tr>
|
550
|
+
<tr>
|
551
|
+
<td><tt>enable_http_api_use</tt></td>
|
552
|
+
<td>true</td>
|
553
|
+
<td>Boolean</td>
|
554
|
+
<td><tt>HUTCH_ENABLE_HTTP_API_USE</tt></td>
|
555
|
+
<td><p>Should the RabbitMQ HTTP API be used?</p></td>
|
556
|
+
</tr>
|
557
|
+
<tr>
|
558
|
+
<td><tt>consumer_pool_abort_on_exception</tt></td>
|
559
|
+
<td>false</td>
|
560
|
+
<td>Boolean</td>
|
561
|
+
<td><tt>HUTCH_CONSUMER_POOL_ABORT_ON_EXCEPTION</tt></td>
|
562
|
+
<td><p>Should Bunny's consumer work pool threads abort on exception.</p></td>
|
563
|
+
</tr>
|
564
|
+
<tr>
|
565
|
+
<td><tt>consumer_tag_prefix</tt></td>
|
566
|
+
<td>hutch</td>
|
567
|
+
<td>String</td>
|
568
|
+
<td><tt>HUTCH_CONSUMER_TAG_PREFIX</tt></td>
|
569
|
+
<td><p>Prefix displayed on the consumers tags.</p></td>
|
570
|
+
</tr>
|
571
|
+
</tbody>
|
572
|
+
</table>
|
320
573
|
|
321
|
-
## Supported RabbitMQ Versions
|
322
|
-
|
323
|
-
Hutch requires RabbitMQ 3.3 or later.
|
324
574
|
|
325
575
|
---
|
326
576
|
|