emque-consuming 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4fd47c625dd718cb34caef7debf0ed863e281aa8
4
- data.tar.gz: 96ec8d035b27f2dfdd026190c6676a49ef4a1a47
3
+ metadata.gz: 12f58267d541cb53c2dcd731663e1c19da52c801
4
+ data.tar.gz: c9555bff3fc2315e542cd637d4d2a4f387895169
5
5
  SHA512:
6
- metadata.gz: d8d897f63d2584abd1193524ee2ef24736fcd5319586a3933511f5f2b9f8ad345f6f2ecf37ec6c891af79be535606cd303276469d0817a113de155702b3f60f0
7
- data.tar.gz: c35297d72fe10c75b6a45778367f21886c6a14a4c16aec28335bb80e577554f766940c44d9207ce400fdff2ed207c1aecc5d0e1ad311e96db9741d128fac5c66
6
+ metadata.gz: 9fce1adb82ccb832409b252e1ed3d2741fc80ae8e4706cac533bd594141915b10d98a3aacef168fc145e3f95170c3e9ef5675d402bad1a46b4651e069b4012fc
7
+ data.tar.gz: d0d287ed1519c23dcccc52bf9cc1dd3641af322d0ba1f47382a4fcc529321eb1251c714394bf3a5cf575d545bfc45d78dfad59b309683ae87dc907eb2f22c661
data/CHANGELOG.md CHANGED
@@ -1,4 +1,8 @@
1
- ## 1.0.0.beta4 (unreleased)
1
+ # Emque Consuming CHANGELOG
2
+
3
+ - [Add in a configuration option to disable auto shutdown on reaching the error limit](https://github.com/emque/emque-consuming/pull/58) 1.1.3
4
+
5
+ ## 1.0.0.beta4
2
6
 
3
7
  ### BREAKING CHANGE - New Queue Names
4
8
  Applications updating to this version will have new queue names in RabbitMQ.
data/README.md CHANGED
@@ -157,6 +157,7 @@ emque <options> (start|stop|new|console|help) <name (new only)>
157
157
  -x, --error-expiration SECONDS Expire errors after SECONDS
158
158
  --app-name NAME Run the application as NAME
159
159
  --env (ex. production) Set the application environment, overrides EMQUE_ENV
160
+ --auto-shutdown (false|true) Enable or disable auto shutdown on reaching the error limit
160
161
  ```
161
162
 
162
163
  and a series of rake commands:
@@ -62,13 +62,19 @@ module Emque
62
62
 
63
63
  def verify_error_status
64
64
  if error_tracker.limit_reached?
65
- handle_shutdown
66
- runner.stop
65
+ if auto_shutdown_enabled
66
+ handle_shutdown
67
+ runner.stop
68
+ end
67
69
  end
68
70
  end
69
71
 
70
72
  # private
71
73
 
74
+ def auto_shutdown_enabled
75
+ config.auto_shutdown
76
+ end
77
+
72
78
  def ensure_adapter_is_configured!
73
79
  if config.adapter.nil?
74
80
  raise AdapterConfigurationError,
@@ -132,6 +132,18 @@ module Emque
132
132
  options[:env] = arg
133
133
  end
134
134
 
135
+ o.on(
136
+ "--auto-shutdown (false|true)",
137
+ "Enable or disable auto shutdown on reaching the error limit"
138
+ ) do |arg|
139
+ exp = arg.to_s
140
+ if exp == "true"
141
+ options[:auto_shutdown] = true
142
+ else
143
+ options[:auto_shutdown] = false
144
+ end
145
+ end
146
+
135
147
  o.banner = "emque <options> (start|stop|new|console|help) <name (new only)>"
136
148
  }
137
149
  end
@@ -3,13 +3,14 @@ require "logger"
3
3
  module Emque
4
4
  module Consuming
5
5
  class Configuration
6
- attr_accessor :app_name, :adapter, :error_handlers, :error_limit,
7
- :error_expiration, :status, :status_port, :status_host, :socket_path,
8
- :shutdown_handlers
6
+ attr_accessor :app_name, :auto_shutdown, :adapter, :error_handlers,
7
+ :error_limit, :error_expiration, :status, :status_port, :status_host,
8
+ :socket_path, :shutdown_handlers
9
9
  attr_writer :env, :log_level
10
10
 
11
11
  def initialize
12
- @app_name = ""
12
+ @app_name = ""
13
+ @auto_shutdown = false
13
14
  @error_handlers = []
14
15
  @error_limit = 5
15
16
  @error_expiration = 3600 # 60 minutes
@@ -41,6 +42,7 @@ module Emque
41
42
  {}.tap { |config|
42
43
  [
43
44
  :app_name,
45
+ :auto_shutdown,
44
46
  :adapter,
45
47
  :env,
46
48
  :error_handlers,
@@ -1,5 +1,5 @@
1
1
  module Emque
2
2
  module Consuming
3
- VERSION = "1.1.2"
3
+ VERSION = "1.1.3"
4
4
  end
5
5
  end
@@ -14,6 +14,7 @@ describe Emque::Consuming::Application do
14
14
 
15
15
  it "triggers a shutdown one the error_limit is reached" do
16
16
  Dummy::Application.config.error_limit = 2
17
+ Dummy::Application.config.auto_shutdown = true
17
18
  app = Dummy::Application.new
18
19
  Emque::Consuming::Runner.instance =
19
20
  double(:runner, :status => double(:status, :to_h => {}))
@@ -24,5 +25,20 @@ describe Emque::Consuming::Application do
24
25
  app.notice_error({ :test => "failure" })
25
26
  app.notice_error({ :test => "another failure" })
26
27
  end
28
+
29
+ it "doesn't shutdown if the error_limit is disabled" do
30
+ Dummy::Application.config.error_limit = 2
31
+ Dummy::Application.config.auto_shutdown = false
32
+ app = Dummy::Application.new
33
+ Emque::Consuming::Runner.instance =
34
+ double(:runner, :status => double(:status, :to_h => {}))
35
+
36
+ expect(Emque::Consuming::Runner.instance)
37
+ .to receive(:stop).exactly(0).times
38
+
39
+ app.notice_error({ :test => "failure" })
40
+ app.notice_error({ :test => "another failure" })
41
+
42
+ end
27
43
  end
28
44
  end
@@ -22,9 +22,9 @@ describe Emque::Consuming::Configuration do
22
22
 
23
23
  it "returns the value of all the accessors" do
24
24
  accessors = [
25
- :app_name, :adapter, :env, :error_handlers, :error_limit,
26
- :error_expiration, :log_level, :status_port, :status_host, :status,
27
- :socket_path, :shutdown_handlers
25
+ :app_name, :auto_shutdown, :adapter, :env, :error_handlers,
26
+ :error_limit, :error_expiration, :log_level, :status_port, :status_host,
27
+ :status, :socket_path, :shutdown_handlers
28
28
  ]
29
29
  config = Emque::Consuming::Configuration.new
30
30
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emque-consuming
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Williams
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-05-03 00:00:00.000000000 Z
12
+ date: 2016-05-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: celluloid
@@ -287,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
287
  version: '0'
288
288
  requirements: []
289
289
  rubyforge_project:
290
- rubygems_version: 2.4.5.1
290
+ rubygems_version: 2.2.2
291
291
  signing_key:
292
292
  specification_version: 4
293
293
  summary: Microservices framework for Ruby
@@ -307,4 +307,3 @@ test_files:
307
307
  - spec/router_spec.rb
308
308
  - spec/runner_spec.rb
309
309
  - spec/spec_helper.rb
310
- has_rdoc: