bunnish 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "bunnish"
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kenji Hara"]
12
- s.date = "2013-01-02"
12
+ s.date = "2013-03-25"
13
13
  s.description = "Command for AMQP access to Message Queue."
14
14
  s.email = "haracane@gmail.com"
15
15
  s.executables = ["bunnish"]
@@ -68,8 +68,7 @@ Gem::Specification.new do |s|
68
68
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
69
69
  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
70
70
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
71
- s.add_development_dependency(%q<simplecov>, [">= 0"])
72
- s.add_development_dependency(%q<simplecov-rcov>, [">= 0"])
71
+ s.add_development_dependency(%q<rcov>, [">= 0"])
73
72
  s.add_development_dependency(%q<ci_reporter>, [">= 1.7.0"])
74
73
  s.add_development_dependency(%q<flog>, [">= 3.2.0"])
75
74
  else
@@ -79,8 +78,7 @@ Gem::Specification.new do |s|
79
78
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
80
79
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
81
80
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
82
- s.add_dependency(%q<simplecov>, [">= 0"])
83
- s.add_dependency(%q<simplecov-rcov>, [">= 0"])
81
+ s.add_dependency(%q<rcov>, [">= 0"])
84
82
  s.add_dependency(%q<ci_reporter>, [">= 1.7.0"])
85
83
  s.add_dependency(%q<flog>, [">= 3.2.0"])
86
84
  end
@@ -91,8 +89,7 @@ Gem::Specification.new do |s|
91
89
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
92
90
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
93
91
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
94
- s.add_dependency(%q<simplecov>, [">= 0"])
95
- s.add_dependency(%q<simplecov-rcov>, [">= 0"])
92
+ s.add_dependency(%q<rcov>, [">= 0"])
96
93
  s.add_dependency(%q<ci_reporter>, [">= 1.7.0"])
97
94
  s.add_dependency(%q<flog>, [">= 3.2.0"])
98
95
  end
@@ -9,6 +9,9 @@ module Bunnish::Command
9
9
  password = params[:password]
10
10
  durable = params[:durable]
11
11
  unit_size = params[:unit_size] || 10000
12
+ weight_second = params[:weight_second]
13
+ retry_max_count = params[:retry_max_count]
14
+
12
15
  raise_exception_flag = params[:raise_exception_flag]
13
16
  ack = params[:ack]
14
17
  consumer_tag = params[:consumer_tag]
@@ -90,6 +93,7 @@ module Bunnish::Command
90
93
  Bunnish::Core::Common.output_log [log_stream], "INFO", "#{log_label} no messages in #{queue_name}(#{remain_count} messages, #{consumer_count} consumers)"
91
94
  else
92
95
  # subscribe to queue
96
+ retry_count = 0
93
97
  begin
94
98
  queue.subscribe(:ack=>ack, \
95
99
  :consumer_tag=>consumer_tag, \
@@ -107,13 +111,22 @@ module Bunnish::Command
107
111
  break if min_size && remain_count <= total_count + min_size
108
112
  end
109
113
  end
114
+ retry_count = 0
110
115
  end
111
116
  rescue Exception=>e
112
- if raise_exception_flag then
113
- bunny.stop if bunny
114
- raise e if raise_exception_flag
117
+ if retry_count < retry_max_count
118
+ Bunnish.logger.warn("(EXCEPTION)#{log_label} #{e.message}(#{e.class.name}): #{e.backtrace.map{|s| " #{s}"}.join("\n")}")
119
+ Bunnish.logger.warn("#{log_label} retry(#{retry_count})")
120
+ retry_count += 1
121
+ sleep(weight_second)
122
+ retry
115
123
  else
116
- Bunnish::Core::Common.output_log [log_stream], "EXCEPTION", "#{log_label} #{e.message}(#{e.class.name}): #{e.backtrace.map{|s| " #{s}"}.join("\n")}"
124
+ if raise_exception_flag then
125
+ bunny.stop if bunny
126
+ raise e if raise_exception_flag
127
+ else
128
+ Bunnish.logger.warn("(EXCEPTION)#{log_label} #{e.message}(#{e.class.name}): #{e.backtrace.map{|s| " #{s}"}.join("\n")}")
129
+ end
117
130
  end
118
131
  end
119
132
  end
@@ -17,6 +17,8 @@ module Bunnish::Core
17
17
  message_max = nil
18
18
  timeout = 1
19
19
  unit_size = nil
20
+ weight_second = 1
21
+ retry_max_count = 5
20
22
  min_size = nil
21
23
  current_all_flag = false
22
24
 
@@ -52,6 +54,10 @@ module Bunnish::Core
52
54
  exchange_name = argv.shift
53
55
  when '--unit-size'
54
56
  unit_size = argv.shift.to_i
57
+ when '--weight'
58
+ weight_second = argv.shift.to_f / 1000
59
+ when '--retry'
60
+ retry_max_count = argv.shift.to_i
55
61
  when '--log-label'
56
62
  log_label = argv.shift
57
63
  log_label = "[#{log_label}]"
@@ -102,6 +108,8 @@ module Bunnish::Core
102
108
  :ack=>ack,
103
109
  :exchange_name=>exchange_name,
104
110
  :unit_size=>unit_size,
111
+ :weight_second=>weight_second,
112
+ :retry_max_count=>retry_max_count,
105
113
  :raise_exception_flag=>raise_exception_flag,
106
114
  :delimiter=>delimiter,
107
115
  :log_label=>log_label,
metadata CHANGED
@@ -1,185 +1,171 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: bunnish
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 3
10
+ version: 0.1.3
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Kenji Hara
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2013-01-02 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-03-25 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ requirement: &id001 !ruby/object:Gem::Requirement
22
+ none: false
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ hash: 3
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ version_requirements: *id001
15
31
  name: json
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
32
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: bunny
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: 0.8.0
38
33
  type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
34
+ - !ruby/object:Gem::Dependency
35
+ requirement: &id002 !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ hash: 63
41
+ segments:
42
+ - 0
43
+ - 8
44
+ - 0
45
45
  version: 0.8.0
46
- - !ruby/object:Gem::Dependency
47
- name: rspec
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: 2.8.0
54
- type: :development
46
+ version_requirements: *id002
47
+ name: bunny
55
48
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
49
+ type: :runtime
50
+ - !ruby/object:Gem::Dependency
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 47
57
+ segments:
58
+ - 2
59
+ - 8
60
+ - 0
61
61
  version: 2.8.0
62
- - !ruby/object:Gem::Dependency
63
- name: rdoc
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '3.12'
70
- type: :development
62
+ version_requirements: *id003
63
+ name: rspec
71
64
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: '3.12'
78
- - !ruby/object:Gem::Dependency
79
- name: bundler
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: 1.0.0
86
65
  type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: 1.0.0
94
- - !ruby/object:Gem::Dependency
95
- name: jeweler
96
- requirement: !ruby/object:Gem::Requirement
66
+ - !ruby/object:Gem::Dependency
67
+ requirement: &id004 !ruby/object:Gem::Requirement
97
68
  none: false
98
- requirements:
69
+ requirements:
99
70
  - - ~>
100
- - !ruby/object:Gem::Version
101
- version: 1.8.4
71
+ - !ruby/object:Gem::Version
72
+ hash: 31
73
+ segments:
74
+ - 3
75
+ - 12
76
+ version: "3.12"
77
+ version_requirements: *id004
78
+ name: rdoc
79
+ prerelease: false
102
80
  type: :development
81
+ - !ruby/object:Gem::Dependency
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 23
88
+ segments:
89
+ - 1
90
+ - 0
91
+ - 0
92
+ version: 1.0.0
93
+ version_requirements: *id005
94
+ name: bundler
103
95
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
96
+ type: :development
97
+ - !ruby/object:Gem::Dependency
98
+ requirement: &id006 !ruby/object:Gem::Requirement
105
99
  none: false
106
- requirements:
100
+ requirements:
107
101
  - - ~>
108
- - !ruby/object:Gem::Version
102
+ - !ruby/object:Gem::Version
103
+ hash: 63
104
+ segments:
105
+ - 1
106
+ - 8
107
+ - 4
109
108
  version: 1.8.4
110
- - !ruby/object:Gem::Dependency
111
- name: simplecov
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
109
+ version_requirements: *id006
110
+ name: jeweler
119
111
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: simplecov-rcov
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
112
  type: :development
113
+ - !ruby/object:Gem::Dependency
114
+ requirement: &id007 !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
122
+ version: "0"
123
+ version_requirements: *id007
124
+ name: rcov
135
125
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
142
- - !ruby/object:Gem::Dependency
143
- name: ci_reporter
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ! '>='
148
- - !ruby/object:Gem::Version
149
- version: 1.7.0
150
126
  type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
127
+ - !ruby/object:Gem::Dependency
128
+ requirement: &id008 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ hash: 11
134
+ segments:
135
+ - 1
136
+ - 7
137
+ - 0
157
138
  version: 1.7.0
158
- - !ruby/object:Gem::Dependency
159
- name: flog
160
- requirement: !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - ! '>='
164
- - !ruby/object:Gem::Version
165
- version: 3.2.0
166
- type: :development
139
+ version_requirements: *id008
140
+ name: ci_reporter
167
141
  prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ! '>='
172
- - !ruby/object:Gem::Version
142
+ type: :development
143
+ - !ruby/object:Gem::Dependency
144
+ requirement: &id009 !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ hash: 15
150
+ segments:
151
+ - 3
152
+ - 2
153
+ - 0
173
154
  version: 3.2.0
155
+ version_requirements: *id009
156
+ name: flog
157
+ prerelease: false
158
+ type: :development
174
159
  description: Command for AMQP access to Message Queue.
175
160
  email: haracane@gmail.com
176
- executables:
161
+ executables:
177
162
  - bunnish
178
163
  extensions: []
179
- extra_rdoc_files:
164
+
165
+ extra_rdoc_files:
180
166
  - LICENSE.txt
181
167
  - README.rdoc
182
- files:
168
+ files:
183
169
  - .document
184
170
  - .rspec
185
171
  - Gemfile
@@ -214,31 +200,37 @@ files:
214
200
  - spec/lib/bunny_extensions_spec.rb
215
201
  - spec/spec_helper.rb
216
202
  homepage: http://github.com/haracane/bunnish
217
- licenses:
203
+ licenses:
218
204
  - MIT
219
205
  post_install_message:
220
206
  rdoc_options: []
221
- require_paths:
207
+
208
+ require_paths:
222
209
  - lib
223
- required_ruby_version: !ruby/object:Gem::Requirement
210
+ required_ruby_version: !ruby/object:Gem::Requirement
224
211
  none: false
225
- requirements:
226
- - - ! '>='
227
- - !ruby/object:Gem::Version
228
- version: '0'
229
- segments:
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ hash: 3
216
+ segments:
230
217
  - 0
231
- hash: -1687962757571795161
232
- required_rubygems_version: !ruby/object:Gem::Requirement
218
+ version: "0"
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
233
220
  none: false
234
- requirements:
235
- - - ! '>='
236
- - !ruby/object:Gem::Version
237
- version: '0'
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ hash: 3
225
+ segments:
226
+ - 0
227
+ version: "0"
238
228
  requirements: []
229
+
239
230
  rubyforge_project:
240
231
  rubygems_version: 1.8.24
241
232
  signing_key:
242
233
  specification_version: 3
243
234
  summary: Command for AMQP access to Message Queue.
244
235
  test_files: []
236
+