iron_worker 2.4.3 → 3.0.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +352 -0
- data/iron_worker.gemspec +3 -8
- data/lib/iron_worker.rb +13 -51
- data/lib/iron_worker/api_client.rb +152 -0
- data/lib/iron_worker/version.rb +9 -1
- data/lib/iron_worker/worker_helper.rb +72 -0
- metadata +18 -183
- data/README.markdown +0 -73
- data/lib/generators/iron_worker/iron_worker_generator.rb +0 -13
- data/lib/generators/iron_worker/templates/template_worker.erb +0 -7
- data/lib/iron_worker/api.rb +0 -244
- data/lib/iron_worker/base.rb +0 -449
- data/lib/iron_worker/config.rb +0 -287
- data/lib/iron_worker/rails2_init.rb +0 -8
- data/lib/iron_worker/railtie.rb +0 -16
- data/lib/iron_worker/server/overrides.rb +0 -198
- data/lib/iron_worker/server/runner.rb +0 -82
- data/lib/iron_worker/service.rb +0 -644
- data/lib/iron_worker/used_in_worker.rb +0 -11
- data/lib/iron_worker/utils.rb +0 -11
- data/rails/init.rb +0 -0
- data/test/Gemfile +0 -36
- data/test/Gemfile.lock +0 -169
- data/test/README.md +0 -5
- data/test/batch_run.rb +0 -121
- data/test/config_sample.yml +0 -13
- data/test/models/cool_model.rb +0 -7
- data/test/models/db_model.rb +0 -6
- data/test/models/model_1.rb +0 -16
- data/test/models/model_2.rb +0 -16
- data/test/quick_run.rb +0 -36
- data/test/quick_schedule.rb +0 -18
- data/test/resources/something.yml +0 -4
- data/test/simple_script.rb +0 -11
- data/test/test_base.rb +0 -79
- data/test/test_database.rb +0 -31
- data/test/test_gems.rb +0 -31
- data/test/test_inheritance.rb +0 -25
- data/test/test_iron_worker.rb +0 -194
- data/test/test_merging.rb +0 -51
- data/test/test_non_worker_script.rb +0 -14
- data/test/test_rails.rb +0 -35
- data/test/test_scheduling.rb +0 -74
- data/test/test_scheduling_no_active_support.rb +0 -37
- data/test/test_service.rb +0 -28
- data/test/test_uploads.rb +0 -30
- data/test/test_webhooks.rb +0 -45
- data/test/v2quick.rb +0 -29
- data/test/workers/awesome_job.rb +0 -26
- data/test/workers/aws_s3_worker.rb +0 -10
- data/test/workers/big_data_worker.rb +0 -15
- data/test/workers/big_gems_worker.rb +0 -35
- data/test/workers/cool_worker.rb +0 -14
- data/test/workers/db_worker.rb +0 -27
- data/test/workers/fail_worker.rb +0 -10
- data/test/workers/gem_dependency_worker.rb +0 -20
- data/test/workers/hacker_worker.rb +0 -65
- data/test/workers/iw_test_worker.rb +0 -22
- data/test/workers/iw_test_worker_2.rb +0 -53
- data/test/workers/iw_test_worker_3.rb +0 -17
- data/test/workers/local_vs_remote_worker.rb +0 -9
- data/test/workers/merging_worker.rb +0 -40
- data/test/workers/mq_worker.rb +0 -21
- data/test/workers/one_line_worker.rb +0 -10
- data/test/workers/prawn_worker.rb +0 -32
- data/test/workers/progress_worker.rb +0 -26
- data/test/workers/qb_worker.rb +0 -17
- data/test/workers/rails_worker.rb +0 -24
- data/test/workers/rails_worker2.rb +0 -12
- data/test/workers/requiring_worker.rb +0 -4
- data/test/workers/running_back_worker.rb +0 -7
- data/test/workers/scheduled_worker.rb +0 -15
- data/test/workers/second_worker.rb +0 -16
- data/test/workers/third_worker.rb +0 -6
- data/test/workers/webhook_worker.rb +0 -7
- data/test/zip_vs_gzip.rb +0 -26
data/lib/iron_worker/config.rb
DELETED
@@ -1,287 +0,0 @@
|
|
1
|
-
module IronWorker
|
2
|
-
|
3
|
-
|
4
|
-
# Config is used to setup the IronWorker client.
|
5
|
-
# You must set the access_key and secret_key.
|
6
|
-
#
|
7
|
-
# config.global_attributes allows you to specify attributes that will automatically be set on every worker,
|
8
|
-
# this is good for database connection information or things that will be used across the board.
|
9
|
-
#
|
10
|
-
# config.database configures a database connection. If specified like ActiveRecord, IronWorker will automatically establish a connection
|
11
|
-
# for you before running your worker.
|
12
|
-
class Config
|
13
|
-
attr_accessor :token,
|
14
|
-
:project_id,
|
15
|
-
:scheme,
|
16
|
-
:host,
|
17
|
-
:port,
|
18
|
-
:global_attributes,
|
19
|
-
:models,
|
20
|
-
:mailers,
|
21
|
-
#:gems, # todo: move anything that uses this to merged_gems
|
22
|
-
:database,
|
23
|
-
:mailer,
|
24
|
-
:extra_requires,
|
25
|
-
#:auto_merge,
|
26
|
-
:server_gems,
|
27
|
-
:merged,
|
28
|
-
:unmerged,
|
29
|
-
:merged_gems,
|
30
|
-
:unmerged_gems,
|
31
|
-
:force_upload, :no_upload,
|
32
|
-
:beta, # for setting beta feature flags
|
33
|
-
:skip_auto_dependencies
|
34
|
-
|
35
|
-
def self.system_gems
|
36
|
-
['yajl-ruby', 'bson_ext', 'curb', 'em-http-request', 'eventmachine', 'mysql2', 'net-scp', 'net-sftp', 'net-ssh', 'nokogiri', 'rmagick', 'sqlite3', 'typhoeus']
|
37
|
-
end
|
38
|
-
|
39
|
-
def initialize
|
40
|
-
@global_attributes = {}
|
41
|
-
@extra_requires = []
|
42
|
-
@merged = {}
|
43
|
-
@unmerged = {}
|
44
|
-
@merged_gems = {}
|
45
|
-
@unmerged_gems = {}
|
46
|
-
@mailers = {}
|
47
|
-
@beta = {}
|
48
|
-
|
49
|
-
end
|
50
|
-
|
51
|
-
def access_key=(x)
|
52
|
-
raise "IronWorker Config Error: access_key and secret_key are no longer used. The new IronWorker gem requires a couple of small configuration changes, please see: http://docs.IronWorker.com/ruby/new-gem-v2-update-guide for information."
|
53
|
-
end
|
54
|
-
|
55
|
-
def secret_key=(x)
|
56
|
-
raise "IronWorker Config Error: access_key and secret_key are no longer used. The new IronWorker gem requires a couple of small configuration changes, please see: http://docs.IronWorker.com/ruby/new-gem-v2-update-guide for information."
|
57
|
-
end
|
58
|
-
|
59
|
-
#@gems_to_skip = ['actionmailer', 'actionpack', 'activemodel', 'activeresource', 'activesupport',
|
60
|
-
# 'bundler',
|
61
|
-
# 'mail',
|
62
|
-
# 'mysql2',
|
63
|
-
# 'rails',
|
64
|
-
# 'tzinfo' # HUGE!
|
65
|
-
#]
|
66
|
-
|
67
|
-
#def self.gems_to_skip
|
68
|
-
# @gems_to_skip
|
69
|
-
#end
|
70
|
-
|
71
|
-
def bundle=(activate)
|
72
|
-
if activate
|
73
|
-
IronWorker.logger.info "Initializing IronWorker for Bundler..."
|
74
|
-
IronWorker.configure do |c2|
|
75
|
-
c2.merged_gems.merge!(get_required_gems)
|
76
|
-
IronWorker.logger.debug "List of gems from bundler:#{c2.merged_gems.inspect}"
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
def auto_merge=(b)
|
82
|
-
if b
|
83
|
-
IronWorker.logger.info "Initializing IronWorker for Rails 3..."
|
84
|
-
start_time = Time.now
|
85
|
-
IronWorker.configure do |c2|
|
86
|
-
models_path = File.join(Rails.root, 'app/models/*.rb')
|
87
|
-
models = Dir.glob(models_path)
|
88
|
-
c2.models = models
|
89
|
-
models.each { |model| c2.merge(model) }
|
90
|
-
mailers_path = File.join(Rails.root, 'app/mailers/*.rb')
|
91
|
-
Dir.glob(mailers_path).collect { |m| c2.mailers[File.basename(m)] = {:filename=>m, :name => File.basename(m), :path_to_layouts => File.join(Rails.root, "app/views/layouts"), :path_to_templates=>File.join(Rails.root, "app/views/#{File.basename(m, File.extname(m))}")} }
|
92
|
-
c2.extra_requires += ['active_support/core_ext', 'action_mailer']
|
93
|
-
#puts 'DB FILE=' + File.join(Rails.root, 'config', 'database.yml').to_s
|
94
|
-
if defined?(ActiveRecord) && File.exist?(File.join(Rails.root, 'config', 'database.yml'))
|
95
|
-
c2.extra_requires += ['active_record']
|
96
|
-
c2.database = Rails.configuration.database_configuration[Rails.env]
|
97
|
-
else
|
98
|
-
#puts 'NOT DOING ACTIVERECORD'
|
99
|
-
end
|
100
|
-
|
101
|
-
if defined?(ActionMailer) && ActionMailer::Base.smtp_settings
|
102
|
-
c2.mailer = ActionMailer::Base.smtp_settings
|
103
|
-
end
|
104
|
-
c2.merged_gems.merge!(get_required_gems)
|
105
|
-
IronWorker.logger.debug "MODELS " + c2.models.inspect
|
106
|
-
IronWorker.logger.debug "MAILERS " + c2.mailers.inspect
|
107
|
-
IronWorker.logger.debug "DATABASE " + c2.database.inspect
|
108
|
-
#IronWorker.logger.debug "GEMS " + c2.gems.inspect
|
109
|
-
end
|
110
|
-
end_time = Time.now
|
111
|
-
IronWorker.logger.info "IronWorker initialized. Duration: #{((end_time.to_f-start_time.to_f) * 1000.0).to_i} ms"
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
|
116
|
-
def get_required_gems
|
117
|
-
#skipping if bundler not defined or not initialized
|
118
|
-
return {} unless defined?(Bundler) && Bundler.instance_variables.include?(:@setup)
|
119
|
-
gems_in_gemfile = Bundler.environment.dependencies.select { |d| d.groups.include?(:default) }
|
120
|
-
IronWorker.logger.debug 'gems in gemfile=' + gems_in_gemfile.inspect
|
121
|
-
gems = {}
|
122
|
-
specs = Bundler.load.specs
|
123
|
-
IronWorker.logger.debug 'Bundler specs=' + specs.inspect
|
124
|
-
#IronWorker.logger.debug "gems_to_skip=" + self.class.gems_to_skip.inspect
|
125
|
-
specs.each do |spec|
|
126
|
-
IronWorker.logger.debug 'spec.name=' + spec.name.inspect
|
127
|
-
IronWorker.logger.debug 'spec=' + spec.inspect
|
128
|
-
#if self.class.gems_to_skip.include?(spec.name)
|
129
|
-
# IronWorker.logger.debug "Skipping #{spec.name}"
|
130
|
-
# next
|
131
|
-
#end
|
132
|
-
# next if dep.name=='rails' #monkey patch
|
133
|
-
gem_info = {:name=>spec.name, :version=>spec.version}
|
134
|
-
gem_info[:auto_merged] = true
|
135
|
-
gem_info[:merge] = spec.extensions.length == 0 #merging only non binary gems
|
136
|
-
gem_info[:bypass_require] = true #don't require gem'
|
137
|
-
# Now find dependency in gemfile in case user set the require
|
138
|
-
dep = gems_in_gemfile.find { |g| g.name == gem_info[:name] }
|
139
|
-
if dep
|
140
|
-
IronWorker.logger.debug 'dep found in gemfile: ' + dep.inspect
|
141
|
-
IronWorker.logger.debug 'autorequire=' + dep.autorequire.inspect
|
142
|
-
gem_info[:require] = dep.autorequire if dep.autorequire
|
143
|
-
# spec = specs.find { |g| g.name==gem_info[:name] }
|
144
|
-
end
|
145
|
-
gem_info[:version] = spec.version.to_s
|
146
|
-
gems[gem_info[:name]] = gem_info
|
147
|
-
gemspec, path = IronWorker::Service.get_gem_path(gem_info)
|
148
|
-
if path
|
149
|
-
gem_info[:gemspec] = gemspec
|
150
|
-
gem_info[:path] = path
|
151
|
-
if gem_info[:require].nil? && dep
|
152
|
-
# see if we should try to require this in our worker
|
153
|
-
require_path = gem_info[:path] + "/lib/#{gem_info[:name]}.rb"
|
154
|
-
IronWorker.logger.debug "require_path=" + require_path
|
155
|
-
if File.exists?(require_path)
|
156
|
-
IronWorker.logger.debug "File exists for require"
|
157
|
-
gem_info[:require] = gem_info[:name]
|
158
|
-
else
|
159
|
-
IronWorker.logger.debug "no require"
|
160
|
-
# gem_info[:no_require] = true
|
161
|
-
end
|
162
|
-
end
|
163
|
-
else
|
164
|
-
IronWorker.logger.warn "Could not find '#{gem_info[:name]}' specified in Bundler, continuing anyways."
|
165
|
-
end
|
166
|
-
# else
|
167
|
-
# IronWorker.logger.warn "Could not find gem spec for #{gem_info[:name]}"
|
168
|
-
# raise "Could not find gem spec for #{gem_info[:name]}"
|
169
|
-
# end
|
170
|
-
end
|
171
|
-
gems
|
172
|
-
end
|
173
|
-
|
174
|
-
def get_server_gems
|
175
|
-
return []
|
176
|
-
# skipping this now, don't want any server dependencies if possible
|
177
|
-
self.server_gems = IronWorker.service.get_server_gems unless self.server_gems
|
178
|
-
self.server_gems
|
179
|
-
end
|
180
|
-
|
181
|
-
def get_atts_to_send
|
182
|
-
config_data = {}
|
183
|
-
config_data['token'] = token
|
184
|
-
config_data['project_id'] = project_id
|
185
|
-
config_data['database'] = self.database if self.database
|
186
|
-
config_data['mailer'] = self.mailer if self.mailer
|
187
|
-
config_data['global_attributes'] = self.global_attributes if self.global_attributes
|
188
|
-
config_data['scheme'] = self.scheme if self.scheme
|
189
|
-
config_data['host'] = self.host if self.host
|
190
|
-
config_data['port'] = self.port if self.port
|
191
|
-
config_data
|
192
|
-
end
|
193
|
-
|
194
|
-
def merge(file)
|
195
|
-
f2 = IronWorker::MergeHelper.check_for_file(file, caller[2])
|
196
|
-
fbase = f2[:basename]
|
197
|
-
ret = f2
|
198
|
-
@merged[fbase] = ret
|
199
|
-
ret
|
200
|
-
end
|
201
|
-
|
202
|
-
def unmerge(file)
|
203
|
-
f2 = IronWorker::MergeHelper.check_for_file(file, caller[2])
|
204
|
-
fbase = f2[:basename]
|
205
|
-
@unmerged[fbase] =f2
|
206
|
-
@merged.delete(fbase)
|
207
|
-
end
|
208
|
-
|
209
|
-
# Merge a gem globally here
|
210
|
-
def merge_gem(gem_name, options={})
|
211
|
-
merged_gems[gem_name.to_s] = IronWorker::MergeHelper.create_gem_info(gem_name, options)
|
212
|
-
end
|
213
|
-
|
214
|
-
# Unmerge a global gem
|
215
|
-
def unmerge_gem(gem_name)
|
216
|
-
gs = gem_name.to_s
|
217
|
-
gem_info = {:name=>gs}
|
218
|
-
unmerged_gems[gs] = gem_info
|
219
|
-
merged_gems.delete(gs)
|
220
|
-
end
|
221
|
-
|
222
|
-
end
|
223
|
-
|
224
|
-
|
225
|
-
class MergeHelper
|
226
|
-
|
227
|
-
# callerr is original file that is calling the merge function, ie: your worker.
|
228
|
-
# See Base for examples.
|
229
|
-
def self.check_for_file(f, callerr)
|
230
|
-
IronWorker.logger.debug 'Checking for ' + f.to_s
|
231
|
-
f = f.to_str
|
232
|
-
f_ext = File.extname(f)
|
233
|
-
if f_ext.empty?
|
234
|
-
f_ext = ".rb"
|
235
|
-
f << f_ext
|
236
|
-
end
|
237
|
-
exists = false
|
238
|
-
if File.exist? f
|
239
|
-
exists = true
|
240
|
-
else
|
241
|
-
# try relative
|
242
|
-
# p caller
|
243
|
-
f2 = File.join(File.dirname(callerr), f)
|
244
|
-
#puts 'f2=' + f2
|
245
|
-
if File.exist? f2
|
246
|
-
exists = true
|
247
|
-
f = f2
|
248
|
-
end
|
249
|
-
end
|
250
|
-
unless exists
|
251
|
-
raise "File not found: " + f
|
252
|
-
end
|
253
|
-
f = File.expand_path(f)
|
254
|
-
require f if f_ext == '.rb'
|
255
|
-
ret = {}
|
256
|
-
ret[:path] = f
|
257
|
-
ret[:extname] = f_ext
|
258
|
-
ret[:basename] = File.basename(f)
|
259
|
-
ret[:name] = ret[:basename]
|
260
|
-
ret
|
261
|
-
end
|
262
|
-
|
263
|
-
def self.create_gem_info(gem_name, options={})
|
264
|
-
gem_info = {:name=>gem_name, :merge=>true}
|
265
|
-
if options.is_a?(Hash)
|
266
|
-
gem_info.merge!(options)
|
267
|
-
if options[:include_dirs]
|
268
|
-
gem_info[:include_dirs] = options[:include_dirs].is_a?(Array) ? options[:include_dirs] : [options[:include_dirs]]
|
269
|
-
end
|
270
|
-
else
|
271
|
-
gem_info[:version] = options
|
272
|
-
end
|
273
|
-
|
274
|
-
gemspec, path = IronWorker::Service.get_gem_path(gem_info)
|
275
|
-
IronWorker.logger.debug "Gem path=#{path}"
|
276
|
-
if !path
|
277
|
-
raise "Gem '#{gem_name}' not found."
|
278
|
-
end
|
279
|
-
gem_info[:gemspec] = gemspec
|
280
|
-
gem_info[:path] = path
|
281
|
-
gem_info[:require] ||= gem_name
|
282
|
-
gem_info
|
283
|
-
end
|
284
|
-
end
|
285
|
-
|
286
|
-
end
|
287
|
-
|
@@ -1,8 +0,0 @@
|
|
1
|
-
#puts "Initializing list of Rails models..."
|
2
|
-
IronWorker.configure do |config|
|
3
|
-
path = File.join(Rails.root, 'app/models/*.rb')
|
4
|
-
# puts 'path=' + path
|
5
|
-
config.models = Dir.glob(path)
|
6
|
-
config.extra_requires += ['active_support/core_ext', 'active_record', 'action_mailer']
|
7
|
-
# puts 'config.models=' + config.models.inspect
|
8
|
-
end
|
data/lib/iron_worker/railtie.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
# see http://api.rubyonrails.org/classes/Rails/Railtie.html
|
2
|
-
|
3
|
-
require 'iron_worker'
|
4
|
-
require 'rails'
|
5
|
-
|
6
|
-
module IronWorker
|
7
|
-
class Railtie < Rails::Railtie
|
8
|
-
|
9
|
-
|
10
|
-
initializer "iron_worker.configure_rails_initialization" do |app|
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
@@ -1,198 +0,0 @@
|
|
1
|
-
# This is used when a bad worker is uploaded.
|
2
|
-
|
3
|
-
module IronWorker
|
4
|
-
|
5
|
-
class InvalidWorkerError < StandardError;
|
6
|
-
end
|
7
|
-
|
8
|
-
class << self
|
9
|
-
def running_class=(rc)
|
10
|
-
@running_class = rc
|
11
|
-
end
|
12
|
-
|
13
|
-
def running_class
|
14
|
-
@running_class
|
15
|
-
end
|
16
|
-
|
17
|
-
def task_data=(td)
|
18
|
-
@task_data = td
|
19
|
-
end
|
20
|
-
|
21
|
-
def task_data
|
22
|
-
@task_data
|
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
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.disable_queueing()
|
43
|
-
@queueing_enabled = false
|
44
|
-
end
|
45
|
-
|
46
|
-
def self.enable_queueing()
|
47
|
-
@queueing_enabled = true
|
48
|
-
end
|
49
|
-
|
50
|
-
def self.queueing_enabled?
|
51
|
-
@queueing_enabled
|
52
|
-
end
|
53
|
-
|
54
|
-
class Config
|
55
|
-
|
56
|
-
def merge(file)
|
57
|
-
end
|
58
|
-
|
59
|
-
def unmerge(file)
|
60
|
-
end
|
61
|
-
|
62
|
-
def merge_gem(gem_name, options={})
|
63
|
-
end
|
64
|
-
|
65
|
-
def unmerge_gem(gem_name)
|
66
|
-
end
|
67
|
-
|
68
|
-
def merge_folder(path)
|
69
|
-
end
|
70
|
-
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
|
75
|
-
class Base
|
76
|
-
|
77
|
-
class << self
|
78
|
-
|
79
|
-
def merge(*files)
|
80
|
-
end
|
81
|
-
|
82
|
-
def merge_folder(path)
|
83
|
-
end
|
84
|
-
|
85
|
-
def unmerge(*files)
|
86
|
-
# ignore this here
|
87
|
-
end
|
88
|
-
|
89
|
-
def merge_mailer(mailer, params=nil)
|
90
|
-
end
|
91
|
-
|
92
|
-
def merge_gem(gem, version=nil)
|
93
|
-
end
|
94
|
-
|
95
|
-
def merge_worker(file, class_name)
|
96
|
-
|
97
|
-
end
|
98
|
-
|
99
|
-
end
|
100
|
-
|
101
|
-
def log(str)
|
102
|
-
puts str.to_s
|
103
|
-
end
|
104
|
-
|
105
|
-
def set_progress(hash)
|
106
|
-
#puts 'set_progress self=' + self.inspect
|
107
|
-
IronWorker.service.set_progress(self.task_id, hash)
|
108
|
-
end
|
109
|
-
|
110
|
-
def something
|
111
|
-
puts 'which class? ' + self.class.name
|
112
|
-
end
|
113
|
-
|
114
|
-
def user_dir
|
115
|
-
# puts 'user_dir=' + @context.user_dir.to_s
|
116
|
-
@user_dir || "./"
|
117
|
-
end
|
118
|
-
|
119
|
-
def sw_set_data(data)
|
120
|
-
if data["attr_encoded"]
|
121
|
-
# new way, attributes are base 64 encoded
|
122
|
-
data = JSON.parse(Base64.decode64(data["attr_encoded"]))
|
123
|
-
end
|
124
|
-
|
125
|
-
data.each_pair do |k, v|
|
126
|
-
next unless k[0] == "@"
|
127
|
-
# puts "setting instance_variable #{k}=#{v}"
|
128
|
-
self.instance_variable_set(k, v)
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
|
133
|
-
def upload_if_needed(options={})
|
134
|
-
puts "No uploading in worker service."
|
135
|
-
end
|
136
|
-
|
137
|
-
alias_method :orig_queue, :queue
|
138
|
-
alias_method :orig_schedule, :schedule
|
139
|
-
alias_method :orig_status, :status
|
140
|
-
|
141
|
-
def queue(options={})
|
142
|
-
if IronWorker.queueing_enabled? && (!same_clazz? || options[:recursive])
|
143
|
-
orig_queue(options)
|
144
|
-
# data = sw_get_data()
|
145
|
-
# queue_other(self.class.name, data)
|
146
|
-
else
|
147
|
-
log (IronWorker.queueing_enabled? ? "WARNING: Recursion detected in queueing, pass in :recursive=>true to bypass this." : "Queuing disabled while loading.")
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
def schedule(schedule)
|
152
|
-
if IronWorker.queueing_enabled? && (!same_clazz? || schedule[:recursive])
|
153
|
-
orig_schedule(schedule)
|
154
|
-
# data = sw_get_data()
|
155
|
-
# schedule_other(self.class.name, data, schedule)
|
156
|
-
else
|
157
|
-
log (IronWorker.queueing_enabled? ? "WARNING: Recursion detected in scheduling." : "Scheduling disabled while loading.")
|
158
|
-
end
|
159
|
-
|
160
|
-
end
|
161
|
-
|
162
|
-
def status
|
163
|
-
if IronWorker.queueing_enabled?
|
164
|
-
orig_status
|
165
|
-
else
|
166
|
-
log "Status disabled while loading."
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
|
-
def same_clazz?
|
171
|
-
IronWorker.running_class == self.class
|
172
|
-
end
|
173
|
-
|
174
|
-
end
|
175
|
-
|
176
|
-
|
177
|
-
class Service < IronWorker::Api::Client
|
178
|
-
def upload(filename, class_name, options={})
|
179
|
-
#puts "Skipping upload, We don't upload from run.rb!"
|
180
|
-
# don't upload, should already be here.
|
181
|
-
end
|
182
|
-
|
183
|
-
def add_sw_params(hash_to_send)
|
184
|
-
hash_to_send["token"] = self.config.token
|
185
|
-
hash_to_send["project_id"] = self.config.project_id
|
186
|
-
hash_to_send["api_version"] = IronWorker.api_version
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
|
191
|
-
module UsedInWorker
|
192
|
-
def log(str)
|
193
|
-
puts str.to_s
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
|
198
|
-
end
|