fluent-plugin-norikra 0.0.5 → 0.0.6

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 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