batchy 0.2.2 → 0.2.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.
- data/lib/batchy.rb +51 -38
- data/lib/batchy/batch.rb +1 -2
- data/lib/batchy/version.rb +1 -1
- metadata +4 -4
data/lib/batchy.rb
CHANGED
@@ -69,55 +69,68 @@ module Batchy
|
|
69
69
|
@logger = logger
|
70
70
|
end
|
71
71
|
|
72
|
+
def create_batch options
|
73
|
+
ignore_block = options[:on_ignore] ? options[:on_ignore] : nil
|
74
|
+
ensure_block = options[:on_ensure] ? options[:on_ensure] : nil
|
75
|
+
options.delete(:on_ignore) if options[:on_ignore]
|
76
|
+
options.delete(:on_ensure) if options[:on_ensure]
|
77
|
+
|
78
|
+
batch = Batch.create options
|
79
|
+
batch.on_ignore ignore_block unless ignore_block.nil?
|
80
|
+
batch.on_ensure ensure_block unless ensure_block.nil?
|
81
|
+
return batch
|
82
|
+
end
|
83
|
+
|
72
84
|
# The main entry point for batchy. It wraps code in a batchy
|
73
85
|
# block. Batchy handles errors, logging and allows for
|
74
86
|
# callbacks.
|
75
87
|
def run *args
|
76
88
|
options = args.extract_options!
|
89
|
+
batch = create_batch options
|
77
90
|
|
78
|
-
batch = Batch.create options
|
79
91
|
batch.clear_zombies unless batch.guid.nil?
|
80
|
-
|
81
92
|
batch.start!
|
82
|
-
return false if batch.ignored?
|
83
|
-
begin
|
84
|
-
# Set the proclist process name
|
85
|
-
previous_name = $0
|
86
|
-
process_name = [Batchy.configure.process_name_prefix, batch.name].join(" ")
|
87
|
-
$0 = process_name if Batchy.configure.name_process
|
88
|
-
|
89
|
-
# Set parent if there is an outer batch
|
90
|
-
if Batchy.current
|
91
|
-
batch.parent = Batchy.current
|
92
|
-
end
|
93
93
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
94
|
+
unless batch.ignored?
|
95
|
+
begin
|
96
|
+
# Set the proclist process name
|
97
|
+
previous_name = $0
|
98
|
+
process_name = [Batchy.configure.process_name_prefix, batch.name].join(" ")
|
99
|
+
$0 = process_name if Batchy.configure.name_process
|
100
|
+
|
101
|
+
# Set parent if there is an outer batch
|
102
|
+
if Batchy.current
|
103
|
+
batch.parent = Batchy.current
|
104
|
+
end
|
105
|
+
|
106
|
+
# Set current batch
|
107
|
+
@current = batch
|
108
|
+
|
109
|
+
# Save everything before yielding
|
110
|
+
batch.save!
|
111
|
+
|
112
|
+
yield batch
|
113
|
+
|
114
|
+
batch.run_success_callbacks
|
115
|
+
rescue Exception => e
|
116
|
+
batch.error = e
|
117
|
+
|
118
|
+
batch.run_failure_callbacks
|
119
|
+
ensure
|
120
|
+
batch.finished_at = DateTime.now
|
121
|
+
batch.finish!
|
122
|
+
|
123
|
+
batch.run_ensure_callbacks
|
124
|
+
|
125
|
+
# Set current batch to parent (or nil if no parent)
|
126
|
+
@current = batch.parent
|
127
|
+
|
128
|
+
# Set proclist process name back
|
129
|
+
$0 = previous_name
|
130
|
+
end
|
118
131
|
end
|
119
132
|
end
|
120
133
|
|
121
134
|
class Error < StandardError
|
122
135
|
end
|
123
|
-
end
|
136
|
+
end
|
data/lib/batchy/batch.rb
CHANGED
@@ -93,7 +93,6 @@ module Batchy
|
|
93
93
|
options.reverse_merge! :limit_to_current_host => false
|
94
94
|
|
95
95
|
raise Batchy::Error, "Can not check for duplicate batches on nil guid" if guid.nil?
|
96
|
-
|
97
96
|
rel = self.class.where(:guid => guid, :state => "running")
|
98
97
|
|
99
98
|
if options[:limit_to_current_host]
|
@@ -252,4 +251,4 @@ module Batchy
|
|
252
251
|
@ignore_callbacks = []
|
253
252
|
end
|
254
253
|
end
|
255
|
-
end
|
254
|
+
end
|
data/lib/batchy/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: batchy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Bob Briski
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-05-02 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activerecord
|
@@ -168,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
168
168
|
requirements:
|
169
169
|
- - ">="
|
170
170
|
- !ruby/object:Gem::Version
|
171
|
-
hash: -
|
171
|
+
hash: -707801613138086114
|
172
172
|
segments:
|
173
173
|
- 0
|
174
174
|
version: "0"
|
@@ -177,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
177
|
requirements:
|
178
178
|
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
hash: -
|
180
|
+
hash: -707801613138086114
|
181
181
|
segments:
|
182
182
|
- 0
|
183
183
|
version: "0"
|