myreplicator 1.0.2 → 1.0.3
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.
@@ -36,18 +36,20 @@ module Myreplicator
|
|
36
36
|
##
|
37
37
|
def self.perform(export_id, *args)
|
38
38
|
options = args.extract_options!
|
39
|
+
ActiveRecord::Base.verify_active_connections!
|
40
|
+
ActiveRecord::Base.connection.reconnect!
|
39
41
|
export_obj = Export.find(export_id)
|
40
|
-
export_obj.
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
42
|
+
export_obj.export
|
43
|
+
end
|
44
|
+
|
45
|
+
##
|
46
|
+
# Runs the export process using the required Exporter library
|
47
|
+
##
|
48
|
+
def export
|
49
|
+
Log.run(:job_type => "export", :name => schedule_name,
|
48
50
|
:file => filename, :export_id => id) do |log|
|
49
51
|
exporter = MysqlExporter.new
|
50
|
-
exporter.export_table self
|
52
|
+
exporter.export_table self # pass current object to exporter
|
51
53
|
end
|
52
54
|
end
|
53
55
|
|
data/lib/myreplicator/version.rb
CHANGED
@@ -29,17 +29,16 @@ module Myreplicator
|
|
29
29
|
def run
|
30
30
|
@done = false
|
31
31
|
@manager_running = false
|
32
|
+
reaper = nil
|
32
33
|
|
33
34
|
while @queue.size > 0
|
34
35
|
if @threads.size <= @max_threads
|
35
36
|
@threads << Thread.new(@queue.pop) do |proc|
|
36
|
-
Thread.current[:status] = 'running' # Manually Set Thread state for Checks
|
37
37
|
@klass.new.instance_exec(proc[:params], &proc[:block])
|
38
|
-
Thread.current[:status] = 'done'
|
39
38
|
end
|
40
39
|
else
|
41
40
|
unless @manager_running
|
42
|
-
manage_threads
|
41
|
+
reaper = manage_threads
|
43
42
|
@manager_running = true
|
44
43
|
end
|
45
44
|
sleep 1
|
@@ -47,14 +46,11 @@ module Myreplicator
|
|
47
46
|
end
|
48
47
|
|
49
48
|
# Run manager if thread size never reached max
|
50
|
-
manage_threads unless @manager_running
|
49
|
+
reaper = manage_threads unless @manager_running
|
51
50
|
|
52
51
|
# Waits until all threads are completed
|
53
52
|
# Before exiting
|
54
|
-
|
55
|
-
sleep 1
|
56
|
-
end
|
57
|
-
|
53
|
+
reaper.join
|
58
54
|
end
|
59
55
|
|
60
56
|
##
|
@@ -67,9 +63,8 @@ module Myreplicator
|
|
67
63
|
while(@threads.size > 0)
|
68
64
|
done = []
|
69
65
|
@threads.each do |t|
|
70
|
-
done << t if t
|
66
|
+
done << t if t.stop?
|
71
67
|
end
|
72
|
-
|
73
68
|
done.each{|d| @threads.delete(d)} # Clear dead threads
|
74
69
|
|
75
70
|
# If no more jobs are left, mark done
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myreplicator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -344,7 +344,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
344
344
|
version: '0'
|
345
345
|
segments:
|
346
346
|
- 0
|
347
|
-
hash: -
|
347
|
+
hash: -2453224116345445588
|
348
348
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
349
349
|
none: false
|
350
350
|
requirements:
|
@@ -353,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
353
353
|
version: '0'
|
354
354
|
segments:
|
355
355
|
- 0
|
356
|
-
hash: -
|
356
|
+
hash: -2453224116345445588
|
357
357
|
requirements: []
|
358
358
|
rubyforge_project:
|
359
359
|
rubygems_version: 1.8.23
|