fluent-plugin-norikra 0.0.5 → 0.0.6

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: f504242a8eb349502eea219ee7ba8c378e1f7f63
4
- data.tar.gz: 4b6ae2bbfdc505b8217e44d6770d154aaf58c34b
3
+ metadata.gz: 8ad302afdc9dbfe8520b8d4efafc200e61014e66
4
+ data.tar.gz: ef1c67429f4912690dd8351589f50123cf93f227
5
5
  SHA512:
6
- metadata.gz: 27f5ea700e25021121a250c0737e5644b63ea2c412c3c739debfadf0ccadd16b2e7bf1e24237779a25b3c55f100011a5ff2f2424bd7e038e4d3c00c40bec5656
7
- data.tar.gz: 4f30c7a90aef5a8ddf08e062477a77050183a0d08d852a34bff5376c57c791f8795d642324a6fdf049d5bc3a6c4bdb894d9404513b4e9cd873e14966bdde642b
6
+ metadata.gz: b6efb974e0587929e664ec773bda14b814729c13e9f08d627d466c7c876725ab269d4bb1f029ea07771f858e110df6b19c571793f3c9e3d01df1d4c1bd074071
7
+ data.tar.gz: 02a0122e9401292e6428a7c37db35cbbb2f8010f9effc8d4551cdc9ecf39c11b5d8ba6e6f258902b78b6b361b35a9cbd4f2bfec5be16b8ffaf5d07b9b0785f1e
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "fluent-plugin-norikra"
5
- spec.version = "0.0.5"
5
+ spec.version = "0.0.6"
6
6
  spec.authors = ["TAGOMORI Satoshi"]
7
7
  spec.email = ["tagomoris@gmail.com"]
8
8
  spec.description = %q{process events on fluentd with SQL like query, with built-in Norikra server if needed.}
@@ -111,6 +111,7 @@ module Fluent
111
111
  end
112
112
 
113
113
  @mutex = Mutex.new
114
+ @target_mutex = Mutex.new
114
115
  end
115
116
 
116
117
  def client(opts={})
@@ -138,6 +139,7 @@ module Fluent
138
139
 
139
140
  # register worker thread
140
141
  @register_queue = []
142
+ @registered_targets = {}
141
143
  @register_thread = Thread.new(&method(:register_worker))
142
144
 
143
145
  # fetch worker thread
@@ -228,6 +230,7 @@ module Fluent
228
230
  insert_fetch_queue(FetchRequest.new(query)) unless query.tag.empty? || @event_method
229
231
  end
230
232
  @target_map[t.name] = t
233
+ @registered_targets.delete(t.name)
231
234
  else
232
235
  $log.error "Failed to prepare norikra data for target:#{t.name}"
233
236
  @norikra_started.push(t)
@@ -262,25 +265,32 @@ module Fluent
262
265
  es.each do |time,record|
263
266
  target = @target_generator.call(tag, record)
264
267
 
265
- t = @target_map[target]
266
- unless t || tobe_registered_target_names.include?(target)
267
- conf = @config_targets[target]
268
- unless conf
269
- @config_targets.values.each do |c|
270
- if c.target_matcher.match(target)
271
- conf = c
272
- break
268
+ tgt = @target_mutex.synchronize do
269
+ t = @target_map[target]
270
+ unless t
271
+ unless tobe_registered_target_names.include?(target)
272
+ conf = @config_targets[target]
273
+ unless conf
274
+ @config_targets.values.each do |c|
275
+ if c.target_matcher.match(target)
276
+ conf = c
277
+ break
278
+ end
279
+ end
273
280
  end
281
+ t = Target.new(target, @default_target + conf)
282
+ @registered_targets[target] = t
283
+ @register_queue.push(t)
284
+ tobe_registered_target_names.push(target)
274
285
  end
286
+ t = @registered_targets[target]
275
287
  end
276
- t = Target.new(target, @default_target + conf)
277
- @register_queue.push(t)
278
- tobe_registered_target_names.push(target)
288
+ t
279
289
  end
280
290
 
281
- event = t.filter(record)
291
+ event = tgt.filter(record)
282
292
 
283
- out << [t.escaped_name,event].to_msgpack
293
+ out << [tgt.escaped_name,event].to_msgpack
284
294
  end
285
295
 
286
296
  out
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-norikra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - TAGOMORI Satoshi