fluent-plugin-mysql-replicator 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "fluent-plugin-mysql-replicator"
4
- s.version = "0.2.1"
4
+ s.version = "0.2.2"
5
5
  s.authors = ["Kentaro Yoshida"]
6
6
  s.email = ["y.ken.studio@gmail.com"]
7
7
  s.homepage = "https://github.com/y-ken/fluent-plugin-mysql-replicator"
@@ -59,7 +59,11 @@ module Fluent
59
59
  query(@query).each do |row|
60
60
  current_ids << row[@primary_key]
61
61
  current_hash = Digest::SHA1.hexdigest(row.flatten.join)
62
- row.each {|k, v| row[k] = v.to_s if v.is_a? Time}
62
+ row.each {|k, v| row[k] = v.to_s if v.is_a?(Time) || v.is_a?(Date)}
63
+ if row[@primary_key].nil?
64
+ $log.error "mysql_replicator: missing primary_key. :tag=>#{tag} :primary_key=>#{primary_key}"
65
+ break
66
+ end
63
67
  if !table_hash.include?(row[@primary_key])
64
68
  tag = format_tag(@tag, {:event => :insert})
65
69
  emit_record(tag, row)
@@ -84,7 +88,7 @@ module Fluent
84
88
  end
85
89
  end
86
90
  end
87
- elapsed_time = sprintf("%0.02f", (Time.now - start_time) % 60)
91
+ elapsed_time = sprintf("%0.02f", Time.now - start_time)
88
92
  $log.info "mysql_replicator: finished execution :tag=>#{tag} :elapsed_time=>#{elapsed_time} seconds"
89
93
  sleep @interval
90
94
  end
@@ -97,7 +101,7 @@ module Fluent
97
101
  def format_tag(tag, param)
98
102
  pattern = {'${event}' => param[:event].to_s, '${primary_key}' => @primary_key}
99
103
  tag.gsub(/\${[a-z_]+(\[[0-9]+\])?}/, pattern) do
100
- $log.warn "mysql_replicator: missing placeholder. tag:#{tag} placeholder:#{$1}" unless pattern.include?($1)
104
+ $log.warn "mysql_replicator: missing placeholder. :tag=>#{tag} :placeholder=>#{$1}" unless pattern.include?($1)
101
105
  pattern[$1]
102
106
  end
103
107
  end
@@ -69,15 +69,20 @@ module Fluent
69
69
  db = get_origin_connection(config)
70
70
  db.query(config['query']).each do |row|
71
71
  @mutex.lock
72
- row.each {|k, v| row[k] = v.to_s if v.is_a? Time}
72
+ row.each {|k, v| row[k] = v.to_s if v.is_a?(Time) || v.is_a?(Date)}
73
73
  current_id = row[primary_key]
74
+ if row[primary_key].nil?
75
+ $log.error "mysql_replicator_multi: missing primary_key. :setting_name=>#{config['name']} :primary_key=>#{primary_key}"
76
+ @mutex.unlock
77
+ break
78
+ end
74
79
  detect_insert_update(config, row)
75
80
  detect_delete(config, current_id, previous_id)
76
81
  previous_id = current_id
77
82
  @mutex.unlock
78
83
  end
79
84
  db.close
80
- elapsed_time = sprintf("%0.02f", (Time.now - start_time) % 60)
85
+ elapsed_time = sprintf("%0.02f", Time.now - start_time)
81
86
  $log.info "mysql_replicator_multi: finished execution :setting_name=>#{config['name']} :elapsed_time=>#{elapsed_time} seconds"
82
87
  sleep config['interval']
83
88
  end
@@ -170,7 +175,7 @@ module Fluent
170
175
  def format_tag(tag, param)
171
176
  pattern = {'${name}' => param[:name], '${event}' => param[:event].to_s, '${primary_key}' => param[:primary_key]}
172
177
  tag.gsub(/\${[a-z_]+(\[[0-9]+\])?}/, pattern) do
173
- $log.warn "mysql_replicator_multi: missing placeholder. tag:#{tag} placeholder:#{$1}" unless pattern.include?($1)
178
+ $log.warn "mysql_replicator_multi: missing placeholder. :tag=>#{tag} :placeholder=>#{$1}" unless pattern.include?($1)
174
179
  pattern[$1]
175
180
  end
176
181
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-mysql-replicator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: