cloud-crowd 0.2.9 → 0.3.0
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/cloud-crowd.gemspec +2 -2
- data/lib/cloud-crowd.rb +1 -1
- data/lib/cloud_crowd/models/job.rb +2 -2
- data/lib/cloud_crowd/models/work_unit.rb +1 -1
- data/test/unit/test_job.rb +5 -0
- metadata +2 -2
data/cloud-crowd.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'cloud-crowd'
|
3
|
-
s.version = '0.
|
4
|
-
s.date = '2009-11-
|
3
|
+
s.version = '0.3.0' # Keep version in sync with cloud-cloud.rb
|
4
|
+
s.date = '2009-11-06'
|
5
5
|
|
6
6
|
s.homepage = "http://wiki.github.com/documentcloud/cloud-crowd"
|
7
7
|
s.summary = "Parallel Processing for the Rest of Us"
|
data/lib/cloud-crowd.rb
CHANGED
@@ -44,7 +44,7 @@ module CloudCrowd
|
|
44
44
|
autoload :WorkUnit, 'cloud_crowd/models'
|
45
45
|
|
46
46
|
# Keep this version in sync with the gemspec.
|
47
|
-
VERSION = '0.
|
47
|
+
VERSION = '0.3.0'
|
48
48
|
|
49
49
|
# Increment the schema version when there's a backwards incompatible change.
|
50
50
|
SCHEMA_VERSION = 3
|
@@ -45,7 +45,7 @@ module CloudCrowd
|
|
45
45
|
return unless all_work_units_complete?
|
46
46
|
set_next_status
|
47
47
|
outs = gather_outputs_from_work_units
|
48
|
-
return queue_for_workers(outs) if merging?
|
48
|
+
return queue_for_workers([outs]) if merging?
|
49
49
|
if complete?
|
50
50
|
update_attributes(:outputs => outs, :time => time_taken)
|
51
51
|
Thread.new { fire_callback } if callback_url
|
@@ -177,7 +177,7 @@ module CloudCrowd
|
|
177
177
|
# away.
|
178
178
|
def queue_for_workers(input=nil)
|
179
179
|
input ||= JSON.parse(self.inputs)
|
180
|
-
|
180
|
+
input.each {|i| WorkUnit.start(self, action, i, status) }
|
181
181
|
self
|
182
182
|
end
|
183
183
|
|
@@ -87,6 +87,7 @@ module CloudCrowd
|
|
87
87
|
|
88
88
|
# Convenience method for starting a new WorkUnit.
|
89
89
|
def self.start(job, action, input, status)
|
90
|
+
input = input.to_json unless input.is_a? String
|
90
91
|
self.create(:job => job, :action => action, :input => input, :status => status)
|
91
92
|
end
|
92
93
|
|
@@ -97,7 +98,6 @@ module CloudCrowd
|
|
97
98
|
def finish(result, time_taken)
|
98
99
|
if splitting?
|
99
100
|
[parsed_output(result)].flatten.each do |new_input|
|
100
|
-
new_input = new_input.to_json unless new_input.is_a? String
|
101
101
|
WorkUnit.start(job, action, new_input, PROCESSING)
|
102
102
|
end
|
103
103
|
self.destroy
|
data/test/unit/test_job.rb
CHANGED
@@ -65,6 +65,11 @@ class JobTest < Test::Unit::TestCase
|
|
65
65
|
assert job.splitting?
|
66
66
|
end
|
67
67
|
|
68
|
+
should "not accidentally flatten array inputs" do
|
69
|
+
job = Job.create_from_request({'inputs' => [[1,2], [3,4]], 'action' => 'process_pdfs'})
|
70
|
+
assert JSON.parse(job.work_units.first.input) == [1,2]
|
71
|
+
end
|
72
|
+
|
68
73
|
should "fire a callback when a job has finished, successfully or not" do
|
69
74
|
@job.update_attribute(:callback_url, 'http://example.com/callback')
|
70
75
|
Job.any_instance.stubs(:fire_callback).returns(true)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloud-crowd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Ashkenas
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-06 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|