iron_worker 2.3.12 → 2.3.13
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/VERSION.yml +1 -1
- data/lib/iron_worker/base.rb +14 -7
- data/lib/iron_worker/config.rb +1 -1
- data/lib/iron_worker/server/overrides.rb +16 -9
- data/lib/iron_worker/server/runner.rb +5 -3
- data/lib/iron_worker/service.rb +24 -14
- data/lib/iron_worker.rb +8 -0
- metadata +18 -18
data/VERSION.yml
CHANGED
data/lib/iron_worker/base.rb
CHANGED
@@ -119,13 +119,20 @@ module IronWorker
|
|
119
119
|
# Use this to merge in other workers. These are treated differently the normal merged files because
|
120
120
|
# they will be uploaded separately and treated as distinctly separate workers.
|
121
121
|
#
|
122
|
-
# file
|
123
|
-
# class_name
|
122
|
+
# @param file [String] This is the path to the file, just like merge.
|
123
|
+
# @param class_name [String|Class] 'MyWorker' or just MyWorker.
|
124
|
+
# @return [Hash]
|
124
125
|
def merge_worker(file, class_name)
|
125
|
-
# puts 'merge_worker in ' + self.name
|
126
126
|
ret = merge(file)
|
127
|
-
ret[:class_name] = class_name
|
128
|
-
|
127
|
+
ret[:class_name] = case class_name
|
128
|
+
when String
|
129
|
+
class_name.strip
|
130
|
+
when Class
|
131
|
+
class_name.name
|
132
|
+
else
|
133
|
+
IronWorker.service.logger.warn "merge_worker: only String or Class is expected as class_name"
|
134
|
+
class_name # probably user does know what is he doing
|
135
|
+
end
|
129
136
|
@merged_workers[file] = ret
|
130
137
|
ret
|
131
138
|
end
|
@@ -242,11 +249,11 @@ module IronWorker
|
|
242
249
|
end
|
243
250
|
|
244
251
|
def is_local?
|
245
|
-
|
252
|
+
IronWorker.is_local?
|
246
253
|
end
|
247
254
|
|
248
255
|
def is_remote?
|
249
|
-
|
256
|
+
IronWorker.is_remote?
|
250
257
|
end
|
251
258
|
|
252
259
|
# will return after job has completed or errored out.
|
data/lib/iron_worker/config.rb
CHANGED
@@ -33,7 +33,7 @@ module IronWorker
|
|
33
33
|
:skip_auto_dependencies
|
34
34
|
|
35
35
|
def self.system_gems
|
36
|
-
['bson_ext', 'curb', 'em-http-request', 'eventmachine', 'mysql2', 'net-scp', 'net-sftp', 'net-ssh', 'nokogiri', 'rmagick', 'sqlite3', 'typhoeus']
|
36
|
+
['yajl-ruby', 'bson_ext', 'curb', 'em-http-request', 'eventmachine', 'mysql2', 'net-scp', 'net-sftp', 'net-ssh', 'nokogiri', 'rmagick', 'sqlite3', 'typhoeus']
|
37
37
|
end
|
38
38
|
|
39
39
|
def initialize
|
@@ -21,6 +21,22 @@ module IronWorker
|
|
21
21
|
def task_data
|
22
22
|
@task_data
|
23
23
|
end
|
24
|
+
|
25
|
+
def payload=(td)
|
26
|
+
@payload = td
|
27
|
+
end
|
28
|
+
|
29
|
+
def payload
|
30
|
+
@payload
|
31
|
+
end
|
32
|
+
|
33
|
+
def is_local?
|
34
|
+
!is_remote?
|
35
|
+
end
|
36
|
+
|
37
|
+
def is_remote?
|
38
|
+
true
|
39
|
+
end
|
24
40
|
end
|
25
41
|
|
26
42
|
def self.disable_queueing()
|
@@ -82,15 +98,6 @@ module IronWorker
|
|
82
98
|
|
83
99
|
end
|
84
100
|
|
85
|
-
def is_remote?
|
86
|
-
true
|
87
|
-
end
|
88
|
-
|
89
|
-
#:todo remove this method later, when new iron_worker gem will be released
|
90
|
-
def is_local?
|
91
|
-
!is_remote?
|
92
|
-
end
|
93
|
-
|
94
101
|
def log(str)
|
95
102
|
puts str.to_s
|
96
103
|
end
|
@@ -51,10 +51,12 @@ def init_runner(runner_class, job_data, user_dir, task_id)
|
|
51
51
|
end
|
52
52
|
runner = runner_class.new
|
53
53
|
runner.instance_variable_set(:@task_id, task_id)
|
54
|
-
|
55
|
-
|
54
|
+
if job_data
|
55
|
+
runner.instance_variable_set(:@job_data, job_data)
|
56
|
+
runner.instance_variable_set(:@sw_config, job_data['sw_config'])
|
57
|
+
runner.sw_set_data(job_data)
|
58
|
+
end
|
56
59
|
runner.instance_variable_set(:@user_dir, user_dir)
|
57
|
-
runner.sw_set_data(job_data)
|
58
60
|
runner
|
59
61
|
end
|
60
62
|
|
data/lib/iron_worker/service.rb
CHANGED
@@ -51,7 +51,7 @@ module IronWorker
|
|
51
51
|
|
52
52
|
begin
|
53
53
|
|
54
|
-
zip_filename = build_merged_file(filename, options[:merge], options[:unmerge], options[:merged_gems], options[:unmerged_gems], options[:merged_mailers], options[:merged_folders])
|
54
|
+
zip_filename = build_merged_file(filename, options[:merge], options[:unmerge], options[:merged_gems], options[:unmerged_gems], options[:merged_mailers], options[:merged_folders], class_name)
|
55
55
|
|
56
56
|
# Check for code changes.
|
57
57
|
zipfile = Zip::ZipFile.open(zip_filename, Zip::ZipFile::CREATE)
|
@@ -92,6 +92,9 @@ module IronWorker
|
|
92
92
|
!Gem::GemPathSearcher.private_instance_methods.include?(:_deprecated_initialize)
|
93
93
|
end
|
94
94
|
|
95
|
+
def webhook
|
96
|
+
|
97
|
+
end
|
95
98
|
|
96
99
|
def self.get_gem_path(gem_info)
|
97
100
|
# gem_name =(gem_info[:require] || gem_info[:name].match(/^[a-zA-Z0-9\-_\.]+/)[0])
|
@@ -143,7 +146,7 @@ module IronWorker
|
|
143
146
|
dependendent_gems
|
144
147
|
end
|
145
148
|
|
146
|
-
def build_merged_file(filename, merged, unmerge, merged_gems, unmerged_gems, merged_mailers, merged_folders)
|
149
|
+
def build_merged_file(filename, merged, unmerge, merged_gems, unmerged_gems, merged_mailers, merged_folders, class_name)
|
147
150
|
|
148
151
|
unmerged_gems ||= {}
|
149
152
|
|
@@ -157,8 +160,7 @@ module IronWorker
|
|
157
160
|
end
|
158
161
|
merged = merge
|
159
162
|
IronWorker.logger.debug 'merged=' + merged.inspect
|
160
|
-
|
161
|
-
merged_gems = merged_gems.merge(IronWorker.config.merged_gems)
|
163
|
+
merged_gems = IronWorker.config.merged_gems.merge(merged_gems)
|
162
164
|
IronWorker.logger.debug 'merged_gems=' + merged_gems.inspect
|
163
165
|
|
164
166
|
if config.skip_auto_dependencies
|
@@ -257,7 +259,10 @@ IronWorker.disable_queueing()
|
|
257
259
|
#puts 'dirname=' + dirname.inspect
|
258
260
|
Dir.chdir(dirname)
|
259
261
|
# Load in job data
|
260
|
-
|
262
|
+
payload = IO.read(task_data_file)
|
263
|
+
IronWorker.payload = payload
|
264
|
+
begin
|
265
|
+
job_data = JSON.parse(payload)
|
261
266
|
#puts 'payload=' + job_data.inspect
|
262
267
|
sw_config = job_data['sw_config']
|
263
268
|
IronWorker.task_data = job_data
|
@@ -272,6 +277,9 @@ if IronWorker.task_data['rails']
|
|
272
277
|
end
|
273
278
|
end
|
274
279
|
end
|
280
|
+
rescue JSON::ParserError => ex
|
281
|
+
puts 'Payload is not json, raw payload can be accessed with IronWorker.payload.'
|
282
|
+
end
|
275
283
|
")
|
276
284
|
|
277
285
|
if IronWorker.config.extra_requires
|
@@ -300,11 +308,13 @@ end
|
|
300
308
|
f.write("require_relative '#{File.basename(filename)}'\n")
|
301
309
|
|
302
310
|
f.write("
|
303
|
-
|
311
|
+
clz_name = '#{class_name}' # job_data['class_name']
|
312
|
+
runner_class = get_class_to_run(clz_name)
|
304
313
|
IronWorker.running_class = runner_class
|
305
314
|
runner = init_runner(runner_class, job_data, dirname, task_id)
|
315
|
+
if IronWorker.task_data
|
306
316
|
init_worker_service_for_runner(job_data)
|
307
|
-
|
317
|
+
end
|
308
318
|
# Now reenable after loading
|
309
319
|
IronWorker.enable_queueing()
|
310
320
|
|
@@ -334,10 +344,10 @@ end
|
|
334
344
|
# puts 'gem=' + gem.inspect
|
335
345
|
path = gem[:path]
|
336
346
|
if path
|
337
|
-
IronWorker.logger.debug "Collecting gem #{path}"
|
347
|
+
#IronWorker.logger.debug "Collecting gem #{path}"
|
338
348
|
paths_to_use = ["#{path}/*", "#{path}/lib/**/**"]
|
339
349
|
if gem[:include_dirs]
|
340
|
-
IronWorker.logger.debug "including extra dirs: " + gem[:include_dirs].inspect
|
350
|
+
#IronWorker.logger.debug "including extra dirs: " + gem[:include_dirs].inspect
|
341
351
|
gem[:include_dirs].each do |dir|
|
342
352
|
paths_to_use << "#{path}/#{dir}/**/**"
|
343
353
|
end
|
@@ -345,11 +355,11 @@ end
|
|
345
355
|
IronWorker.logger.debug 'paths_to_use: ' + paths_to_use.inspect
|
346
356
|
Dir.glob(paths_to_use).each do |file|
|
347
357
|
# todo: could check if directory and it not lib, skip it
|
348
|
-
IronWorker.logger.debug 'file for gem=' + file.inspect
|
358
|
+
#IronWorker.logger.debug 'file for gem=' + file.inspect
|
349
359
|
# puts 'gem2=' + gem.inspect
|
350
360
|
zdest = "gems/#{gem[:name]}/#{file.sub(path+'/', '')}"
|
351
361
|
# puts 'gem file=' + file.to_s
|
352
|
-
IronWorker.logger.debug 'zip dest=' + zdest
|
362
|
+
#IronWorker.logger.debug 'zip dest=' + zdest
|
353
363
|
f.add(zdest, file)
|
354
364
|
end
|
355
365
|
else
|
@@ -369,7 +379,7 @@ end
|
|
369
379
|
if files and files.size>0
|
370
380
|
files.each do |file|
|
371
381
|
zdest = "#{Digest::MD5.hexdigest(folder)}/#{file.sub(':', '_').sub('/', '_')}"
|
372
|
-
IronWorker.logger.debug 'put file to=' + zdest
|
382
|
+
#IronWorker.logger.debug 'put file to=' + zdest
|
373
383
|
f.add(zdest, file)
|
374
384
|
end
|
375
385
|
end
|
@@ -471,7 +481,7 @@ end
|
|
471
481
|
def queue(name, data={}, options={})
|
472
482
|
puts "Queuing #{name}..."
|
473
483
|
check_config
|
474
|
-
|
484
|
+
unless data.is_a?(Array)
|
475
485
|
data = [data]
|
476
486
|
end
|
477
487
|
# Now we need to add class_name to the payload
|
@@ -493,7 +503,7 @@ end
|
|
493
503
|
# todo: REMOVE THIS
|
494
504
|
hash_to_send["rails_env"] = RAILS_ENV
|
495
505
|
end
|
496
|
-
|
506
|
+
queue_raw(name, hash_to_send, options)
|
497
507
|
end
|
498
508
|
|
499
509
|
def queue_raw(name, data={}, options={})
|
data/lib/iron_worker.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iron_worker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.13
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-23 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: zip
|
16
|
-
requirement: &
|
16
|
+
requirement: &19776580 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *19776580
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rest-client
|
27
|
-
requirement: &
|
27
|
+
requirement: &19775720 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *19775720
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rest
|
38
|
-
requirement: &
|
38
|
+
requirement: &19775140 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *19775140
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
requirement: &
|
49
|
+
requirement: &19774600 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *19774600
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: zip
|
60
|
-
requirement: &
|
60
|
+
requirement: &19774020 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *19774020
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rest-client
|
71
|
-
requirement: &
|
71
|
+
requirement: &19773440 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *19773440
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rest
|
82
|
-
requirement: &
|
82
|
+
requirement: &19772860 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *19772860
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: bundler
|
93
|
-
requirement: &
|
93
|
+
requirement: &19772320 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *19772320
|
102
102
|
description: The official IronWorker gem for IronWorker by Iron.io. http://www.iron.io
|
103
103
|
email: travis@iron.io
|
104
104
|
executables: []
|