tengine_core 0.5.33 → 0.5.34

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -31,7 +31,7 @@ GEM
31
31
  bundler (~> 1.0)
32
32
  git (>= 1.2.5)
33
33
  rake
34
- kramdown (0.13.4)
34
+ kramdown (0.13.5)
35
35
  macaddr (1.5.0)
36
36
  systemu (>= 2.4.0)
37
37
  mongo (1.5.2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.33
1
+ 0.5.34
@@ -181,8 +181,13 @@ class Tengine::Core::Kernel
181
181
  unless event
182
182
  # Model.exists?だと上手くいかない時があるのでModel.whereを使っています
183
183
  # fire_failed_event(raw_event) if Tengine::Core::Event.exists?(confitions: { key: raw_event.key, sender_name: raw_event.sender_name })
184
- fire_failed_event(raw_event) if Tengine::Core::Event.where(:key => raw_event.key, :sender_name => raw_event.sender_name).count > 0
185
- headers.ack
184
+ if Tengine::Core::Event.where(:key => raw_event.key, :sender_name => raw_event.sender_name).count > 0
185
+ fire_failed_event(raw_event)
186
+ headers.ack
187
+ else
188
+ Tengine.logger.info("requeue an event #{raw_event.inspect}")
189
+ headers.reject(:requeue => true)
190
+ end
186
191
  return false
187
192
  end
188
193
  event.kernel = self
@@ -248,7 +253,7 @@ class Tengine::Core::Kernel
248
253
  raise "Could not properly shut down; MQ broker is missing."
249
254
  end
250
255
  end
251
-
256
+
252
257
  # see http://rdoc.info/github/ruby-amqp/amqp/master/file/docs/ErrorHandling.textile#Recovering_from_network_connection_failures
253
258
  # mq.connection raiases AMQP::TCPConnectionFailed unless connects to MQ.
254
259
  mq.add_hook :'connection.on_error' do |conn, connection_close|
@@ -242,7 +242,7 @@ describe Tengine::Core::Kernel do
242
242
 
243
243
  it "https://www.pivotaltracker.com/story/show/22698533" do
244
244
  ev = Tengine::Event.new :key => "2498e870-11cd-012f-f8c0-48bcc89f84e1", :source_name => "localhost/8110", :sender_name => "localhost/8110", :level => 2, :occurred_at => Time.now, :properties => {}, :event_type_name => ""
245
- @header.should_receive(:ack)
245
+ @header.should_receive(:reject)
246
246
  @kernel.process_message(@header, ev.to_json).should_not be_true
247
247
  end
248
248
 
@@ -252,8 +252,8 @@ describe Tengine::Core::Kernel do
252
252
  @kernel.process_message(@header, raw_event.to_json).should_not be_true
253
253
  end
254
254
 
255
- it "keyが同じ、sender_nameが異なる場合は、イベントストアへ登録を行わずACKを返却" do
256
- @header.should_receive(:ack)
255
+ it "keyが同じ、sender_nameが異なる場合は、イベントストアへ登録を行わずREJECTを返却" do
256
+ @header.should_receive(:reject)
257
257
  raw_event = Tengine::Event.new(:key => "uuid1", :sender_name => "another_host", :event_type_name => "event1")
258
258
  lambda {
259
259
  Tengine::Core::Event.create!(raw_event.attributes.update(:confirmed => (raw_event.level <= @kernel.config.confirmation_threshold)))
@@ -367,6 +367,7 @@ describe Tengine::Core::Kernel do
367
367
 
368
368
  context "異常系" do
369
369
  it "無限地獄の回避" do
370
+ @header.stub(:reject)
370
371
  Tengine::Core::Event.stub(:create!).and_raise(Mongo::OperationFailure.new)
371
372
  e = Tengine::Event.new key: @uuid.generate, event_type_name: "something.failed.tengine"
372
373
 
@@ -589,16 +590,21 @@ describe Tengine::Core::Kernel do
589
590
  end
590
591
 
591
592
  it "tenginedが調停する #2" do
592
- @header.stub(:ack)
593
+ mock_header1 = mock("header1")
594
+ mock_header2 = mock("header2")
595
+ mock_header3 = mock("header3")
596
+ mock_header1.stub(:ack)
597
+ mock_header2.stub(:reject)
598
+ mock_header3.stub(:reject)
593
599
  n = "alert.execution.job.tengine"
594
600
  s = "test test"
595
601
  e = Tengine::Event.new event_type_name: n, source_name: s, key: "k1"
596
602
  f = Tengine::Event.new event_type_name: n, source_name: s, key: "k2"
597
603
  g = Tengine::Event.new event_type_name: n, source_name: s, key: "k3"
598
604
 
599
- @kernel.process_message @header, e.to_json
600
- @kernel.process_message @header, f.to_json
601
- @kernel.process_message @header, g.to_json
605
+ @kernel.process_message mock_header1, e.to_json
606
+ @kernel.process_message mock_header2, f.to_json
607
+ @kernel.process_message mock_header3, g.to_json
602
608
 
603
609
  Tengine::Core::Event.where(event_type_name: n, source_name: s).count.should == 1
604
610
  end
@@ -618,7 +624,7 @@ describe Tengine::Core::Kernel do
618
624
  :tengined => {
619
625
  :load_path => File.expand_path('../../../examples/uc01_execute_processing_for_event.rb', File.dirname(__FILE__)),
620
626
  },
621
- :event_queue => { :connection => { :port => @port } }
627
+ :event_queue => { :connection => { :port => @port } }
622
628
  })
623
629
  @kernel = Tengine::Core::Kernel.new(config)
624
630
  end
@@ -884,7 +890,7 @@ describe Tengine::Core::Kernel do
884
890
  end
885
891
  sender = mock(:sender)
886
892
  kernel.stub(:sender).and_return(sender)
887
-
893
+
888
894
  EM.should_receive(:cancel_timer)
889
895
  sender.should_receive(:fire).with("finished.process.core.tengine", an_instance_of(Hash))
890
896
 
data/tengine_core.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "tengine_core"
8
- s.version = "0.5.33"
8
+ s.version = "0.5.34"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["taigou", "totty", "g-morita", "shyouhei", "akm", "hiroshinakao"]
12
- s.date = "2012-02-20"
12
+ s.date = "2012-02-21"
13
13
  s.description = "tengine_core is a framework/engine to support distributed processing"
14
14
  s.email = "tengine@nautilus-technologies.com"
15
15
  s.executables = ["tengined", "tengine_heartbeat_watchd", "tengine_atd"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tengine_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.33
4
+ version: 0.5.34
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,11 +14,11 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2012-02-20 00:00:00.000000000Z
17
+ date: 2012-02-21 00:00:00.000000000Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activesupport
21
- requirement: &70326622039380 !ruby/object:Gem::Requirement
21
+ requirement: &70354082424400 !ruby/object:Gem::Requirement
22
22
  none: false
23
23
  requirements:
24
24
  - - ~>
@@ -26,10 +26,10 @@ dependencies:
26
26
  version: 3.1.0
27
27
  type: :runtime
28
28
  prerelease: false
29
- version_requirements: *70326622039380
29
+ version_requirements: *70354082424400
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: activemodel
32
- requirement: &70326622038860 !ruby/object:Gem::Requirement
32
+ requirement: &70354082423860 !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ~>
@@ -37,10 +37,10 @@ dependencies:
37
37
  version: 3.1.0
38
38
  type: :runtime
39
39
  prerelease: false
40
- version_requirements: *70326622038860
40
+ version_requirements: *70354082423860
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: selectable_attr
43
- requirement: &70326622038320 !ruby/object:Gem::Requirement
43
+ requirement: &70354082423340 !ruby/object:Gem::Requirement
44
44
  none: false
45
45
  requirements:
46
46
  - - ~>
@@ -48,10 +48,10 @@ dependencies:
48
48
  version: 0.3.15
49
49
  type: :runtime
50
50
  prerelease: false
51
- version_requirements: *70326622038320
51
+ version_requirements: *70354082423340
52
52
  - !ruby/object:Gem::Dependency
53
53
  name: bson
54
- requirement: &70326622037260 !ruby/object:Gem::Requirement
54
+ requirement: &70354082422760 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
57
57
  - - ~>
@@ -59,10 +59,10 @@ dependencies:
59
59
  version: 1.5.2
60
60
  type: :runtime
61
61
  prerelease: false
62
- version_requirements: *70326622037260
62
+ version_requirements: *70354082422760
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: bson_ext
65
- requirement: &70326622008260 !ruby/object:Gem::Requirement
65
+ requirement: &70354082422220 !ruby/object:Gem::Requirement
66
66
  none: false
67
67
  requirements:
68
68
  - - ~>
@@ -70,10 +70,10 @@ dependencies:
70
70
  version: 1.5.2
71
71
  type: :runtime
72
72
  prerelease: false
73
- version_requirements: *70326622008260
73
+ version_requirements: *70354082422220
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: mongo
76
- requirement: &70326622007780 !ruby/object:Gem::Requirement
76
+ requirement: &70354082421720 !ruby/object:Gem::Requirement
77
77
  none: false
78
78
  requirements:
79
79
  - - ~>
@@ -81,10 +81,10 @@ dependencies:
81
81
  version: 1.5.2
82
82
  type: :runtime
83
83
  prerelease: false
84
- version_requirements: *70326622007780
84
+ version_requirements: *70354082421720
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: mongoid
87
- requirement: &70326622007280 !ruby/object:Gem::Requirement
87
+ requirement: &70354082421220 !ruby/object:Gem::Requirement
88
88
  none: false
89
89
  requirements:
90
90
  - - ~>
@@ -92,10 +92,10 @@ dependencies:
92
92
  version: 2.3.3
93
93
  type: :runtime
94
94
  prerelease: false
95
- version_requirements: *70326622007280
95
+ version_requirements: *70354082421220
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: tengine_support
98
- requirement: &70326622006760 !ruby/object:Gem::Requirement
98
+ requirement: &70354082420740 !ruby/object:Gem::Requirement
99
99
  none: false
100
100
  requirements:
101
101
  - - ~>
@@ -103,10 +103,10 @@ dependencies:
103
103
  version: 0.3.12
104
104
  type: :runtime
105
105
  prerelease: false
106
- version_requirements: *70326622006760
106
+ version_requirements: *70354082420740
107
107
  - !ruby/object:Gem::Dependency
108
108
  name: tengine_event
109
- requirement: &70326622006240 !ruby/object:Gem::Requirement
109
+ requirement: &70354082420240 !ruby/object:Gem::Requirement
110
110
  none: false
111
111
  requirements:
112
112
  - - ~>
@@ -114,10 +114,10 @@ dependencies:
114
114
  version: 0.4.0
115
115
  type: :runtime
116
116
  prerelease: false
117
- version_requirements: *70326622006240
117
+ version_requirements: *70354082420240
118
118
  - !ruby/object:Gem::Dependency
119
119
  name: daemons
120
- requirement: &70326622005720 !ruby/object:Gem::Requirement
120
+ requirement: &70354082419720 !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
123
123
  - - ~>
@@ -125,10 +125,10 @@ dependencies:
125
125
  version: 1.1.4
126
126
  type: :runtime
127
127
  prerelease: false
128
- version_requirements: *70326622005720
128
+ version_requirements: *70354082419720
129
129
  - !ruby/object:Gem::Dependency
130
130
  name: rspec
131
- requirement: &70326622005240 !ruby/object:Gem::Requirement
131
+ requirement: &70354082419200 !ruby/object:Gem::Requirement
132
132
  none: false
133
133
  requirements:
134
134
  - - ~>
@@ -136,10 +136,10 @@ dependencies:
136
136
  version: 2.6.0
137
137
  type: :development
138
138
  prerelease: false
139
- version_requirements: *70326622005240
139
+ version_requirements: *70354082419200
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: factory_girl
142
- requirement: &70326622004720 !ruby/object:Gem::Requirement
142
+ requirement: &70354082418680 !ruby/object:Gem::Requirement
143
143
  none: false
144
144
  requirements:
145
145
  - - ~>
@@ -147,10 +147,10 @@ dependencies:
147
147
  version: 2.1.2
148
148
  type: :development
149
149
  prerelease: false
150
- version_requirements: *70326622004720
150
+ version_requirements: *70354082418680
151
151
  - !ruby/object:Gem::Dependency
152
152
  name: yard
153
- requirement: &70326622004120 !ruby/object:Gem::Requirement
153
+ requirement: &70354082418080 !ruby/object:Gem::Requirement
154
154
  none: false
155
155
  requirements:
156
156
  - - ~>
@@ -158,10 +158,10 @@ dependencies:
158
158
  version: 0.7.2
159
159
  type: :development
160
160
  prerelease: false
161
- version_requirements: *70326622004120
161
+ version_requirements: *70354082418080
162
162
  - !ruby/object:Gem::Dependency
163
163
  name: bundler
164
- requirement: &70326622003520 !ruby/object:Gem::Requirement
164
+ requirement: &70354082417480 !ruby/object:Gem::Requirement
165
165
  none: false
166
166
  requirements:
167
167
  - - ~>
@@ -169,10 +169,10 @@ dependencies:
169
169
  version: 1.0.18
170
170
  type: :development
171
171
  prerelease: false
172
- version_requirements: *70326622003520
172
+ version_requirements: *70354082417480
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: jeweler
175
- requirement: &70326622002940 !ruby/object:Gem::Requirement
175
+ requirement: &70354082416900 !ruby/object:Gem::Requirement
176
176
  none: false
177
177
  requirements:
178
178
  - - ~>
@@ -180,10 +180,10 @@ dependencies:
180
180
  version: 1.6.4
181
181
  type: :development
182
182
  prerelease: false
183
- version_requirements: *70326622002940
183
+ version_requirements: *70354082416900
184
184
  - !ruby/object:Gem::Dependency
185
185
  name: simplecov
186
- requirement: &70326622002340 !ruby/object:Gem::Requirement
186
+ requirement: &70354082416400 !ruby/object:Gem::Requirement
187
187
  none: false
188
188
  requirements:
189
189
  - - ~>
@@ -191,10 +191,10 @@ dependencies:
191
191
  version: 0.5.3
192
192
  type: :development
193
193
  prerelease: false
194
- version_requirements: *70326622002340
194
+ version_requirements: *70354082416400
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: ZenTest
197
- requirement: &70326622001800 !ruby/object:Gem::Requirement
197
+ requirement: &70354082415720 !ruby/object:Gem::Requirement
198
198
  none: false
199
199
  requirements:
200
200
  - - ~>
@@ -202,10 +202,10 @@ dependencies:
202
202
  version: 4.6.2
203
203
  type: :development
204
204
  prerelease: false
205
- version_requirements: *70326622001800
205
+ version_requirements: *70354082415720
206
206
  - !ruby/object:Gem::Dependency
207
207
  name: rdiscount
208
- requirement: &70326622001260 !ruby/object:Gem::Requirement
208
+ requirement: &70354082415240 !ruby/object:Gem::Requirement
209
209
  none: false
210
210
  requirements:
211
211
  - - ! '>='
@@ -213,10 +213,10 @@ dependencies:
213
213
  version: '0'
214
214
  type: :development
215
215
  prerelease: false
216
- version_requirements: *70326622001260
216
+ version_requirements: *70354082415240
217
217
  - !ruby/object:Gem::Dependency
218
218
  name: kramdown
219
- requirement: &70326622000660 !ruby/object:Gem::Requirement
219
+ requirement: &70354082414600 !ruby/object:Gem::Requirement
220
220
  none: false
221
221
  requirements:
222
222
  - - ! '>='
@@ -224,7 +224,7 @@ dependencies:
224
224
  version: '0'
225
225
  type: :development
226
226
  prerelease: false
227
- version_requirements: *70326622000660
227
+ version_requirements: *70354082414600
228
228
  description: tengine_core is a framework/engine to support distributed processing
229
229
  email: tengine@nautilus-technologies.com
230
230
  executables: