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
@@ -1,14 +0,0 @@
|
|
1
|
-
## This is a test for running a simple ruby script, not using the Base class.
|
2
|
-
#require_relative 'test_base'
|
3
|
-
#
|
4
|
-
#class ScriptTest < TestBase
|
5
|
-
#
|
6
|
-
# def test_script
|
7
|
-
# IronWorker.service.upload "one_line_worker.rb", "OneLineWorker"
|
8
|
-
# queue_result = IronWorker.service.queue "simple_script_name", 'x'=>"attribute x"
|
9
|
-
# status = IronWorker.service.wait_until_complete(queue_result)
|
10
|
-
# assert status["status"] = "complete"
|
11
|
-
# # todo: assert log contains our x attribute value
|
12
|
-
# end
|
13
|
-
#
|
14
|
-
#end
|
data/test/test_rails.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
require_relative 'test_base'
|
2
|
-
require_relative 'workers/rails_worker'
|
3
|
-
require 'active_support/core_ext'
|
4
|
-
|
5
|
-
module Rails
|
6
|
-
def self.env
|
7
|
-
"superenviro"
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.version
|
11
|
-
"3.0.1"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
class RailsTests < TestBase
|
16
|
-
|
17
|
-
def test_env
|
18
|
-
worker = RailsWorker.new
|
19
|
-
worker.queue(:priority => 2)
|
20
|
-
|
21
|
-
status = worker.wait_until_complete
|
22
|
-
p status
|
23
|
-
p status["error_class"]
|
24
|
-
p status["msg"]
|
25
|
-
assert status["status"] == "complete", "Status was not complete, it was #{status["status"]}"
|
26
|
-
puts "\n\n\nLOG START:"
|
27
|
-
log = worker.get_log
|
28
|
-
puts log
|
29
|
-
puts "LOG END\n\n\n"
|
30
|
-
assert log.include?("env=" + Rails.env)
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
data/test/test_scheduling.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
require_relative 'test_base'
|
2
|
-
require_relative 'workers/one_line_worker'
|
3
|
-
require 'active_support/core_ext'
|
4
|
-
|
5
|
-
class IronWorkerTests < TestBase
|
6
|
-
|
7
|
-
def test_scheduler
|
8
|
-
worker = OneLineWorker.new
|
9
|
-
|
10
|
-
start_time = Time.now
|
11
|
-
worker.schedule(:start_at=>30.seconds.from_now)
|
12
|
-
status = worker.wait_until_complete
|
13
|
-
assert status["status"] == "complete"
|
14
|
-
end_time = Time.now
|
15
|
-
duration = (end_time-start_time)
|
16
|
-
puts "duration=#{duration}"
|
17
|
-
assert duration > 28
|
18
|
-
|
19
|
-
worker = OneLineWorker.new
|
20
|
-
worker.schedule(:start_at=>1.seconds.from_now, :run_every=>60, :end_at=>(6*60).seconds.from_now)
|
21
|
-
status = worker.wait_until_complete
|
22
|
-
assert status["status"] == "complete"
|
23
|
-
puts "run_count=#{status["run_count"]}"
|
24
|
-
assert status["run_count"] > 5
|
25
|
-
assert status["run_count"] < 20
|
26
|
-
|
27
|
-
worker = OneLineWorker.new
|
28
|
-
worker.schedule(:start_at => 2.seconds.since, :run_every => 60, :run_times => 5)
|
29
|
-
status = worker.wait_until_complete
|
30
|
-
assert status["status"] == "complete"
|
31
|
-
puts "run_count=#{status["run_count"]}"
|
32
|
-
assert status["run_count"] == 5
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_schedule_cancel
|
36
|
-
puts 'test_schedule_cancel'
|
37
|
-
worker = OneLineWorker.new
|
38
|
-
worker.schedule(start_at: 30.seconds.from_now)
|
39
|
-
p worker
|
40
|
-
IronWorker.service.cancel_schedule(worker.schedule_id)
|
41
|
-
assert_equal worker.status['status'], 'cancelled'
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_schedules_paging
|
45
|
-
puts 'test_schedule_cancel'
|
46
|
-
1.times do |i|
|
47
|
-
worker = OneLineWorker.new
|
48
|
-
worker.schedule(start_at: 30.seconds.from_now)
|
49
|
-
p worker
|
50
|
-
end
|
51
|
-
sleep 1
|
52
|
-
page = 0
|
53
|
-
while page <= 100
|
54
|
-
puts "page #{page}"
|
55
|
-
schedules = IronWorker.service.schedules(:page=>page)['schedules']
|
56
|
-
page += 1
|
57
|
-
puts 'schedules=' + schedules.inspect
|
58
|
-
puts 'schedules.size=' + schedules.size.to_s
|
59
|
-
if schedules.size == 0
|
60
|
-
return
|
61
|
-
end
|
62
|
-
schedules.each do |s|
|
63
|
-
puts "schedule: #{s['id']} #{s['status']}"
|
64
|
-
if s['status'] != 'scheduled'
|
65
|
-
next
|
66
|
-
end
|
67
|
-
puts 'SCHEDULED!! Cancelling...'
|
68
|
-
IronWorker.service.cancel_schedule(s['id'])
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require_relative 'test_base'
|
2
|
-
require_relative 'workers/one_line_worker'
|
3
|
-
require 'time'
|
4
|
-
|
5
|
-
class IronWorkerTests < TestBase
|
6
|
-
|
7
|
-
def test_scheduler_no_as
|
8
|
-
worker = OneLineWorker.new
|
9
|
-
|
10
|
-
start_time = Time.now
|
11
|
-
worker.schedule(:start_at=>(Time.now + 30).iso8601)
|
12
|
-
status = worker.wait_until_complete
|
13
|
-
assert status["status"] == "complete"
|
14
|
-
end_time = Time.now
|
15
|
-
duration = (end_time-start_time)
|
16
|
-
puts "duration=#{duration}"
|
17
|
-
assert duration > 28
|
18
|
-
|
19
|
-
worker = OneLineWorker.new
|
20
|
-
worker.schedule(:start_at=>Time.now.iso8601, :run_every=>60, :end_at=>(Time.now + (60*5)).iso8601)
|
21
|
-
status = worker.wait_until_complete
|
22
|
-
assert status["status"] == "complete"
|
23
|
-
puts "run_count=#{status["run_count"]}"
|
24
|
-
assert status["run_count"] > 4
|
25
|
-
assert status["run_count"] < 10
|
26
|
-
|
27
|
-
worker = OneLineWorker.new
|
28
|
-
worker.schedule(:start_at => Time.now.iso8601, :run_every => 60, :run_times => 5)
|
29
|
-
status = worker.wait_until_complete
|
30
|
-
assert status["status"] == "complete"
|
31
|
-
puts "run_count=#{status["run_count"]}"
|
32
|
-
assert status["run_count"] == 5
|
33
|
-
end
|
34
|
-
|
35
|
-
|
36
|
-
end
|
37
|
-
|
data/test/test_service.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
require_relative 'test_base'
|
2
|
-
|
3
|
-
class ServiceTests < TestBase
|
4
|
-
|
5
|
-
def test_codes
|
6
|
-
resp = IronWorker.service.codes
|
7
|
-
p resp
|
8
|
-
assert resp["codes"]
|
9
|
-
assert resp["codes"].is_a?(Array)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_tasks
|
13
|
-
resp = IronWorker.service.tasks
|
14
|
-
p resp
|
15
|
-
assert resp["tasks"]
|
16
|
-
assert resp["tasks"].is_a?(Array)
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_schedules
|
20
|
-
resp = IronWorker.service.schedules
|
21
|
-
p resp
|
22
|
-
assert resp["schedules"]
|
23
|
-
assert resp["schedules"].is_a?(Array)
|
24
|
-
end
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
|
data/test/test_uploads.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require_relative 'test_base'
|
2
|
-
|
3
|
-
class IronWorkerTests < TestBase
|
4
|
-
|
5
|
-
#def test_uploads
|
6
|
-
# IronWorker.config.force_upload = false
|
7
|
-
# IronWorker.config.no_upload = true
|
8
|
-
#
|
9
|
-
# gen_worker
|
10
|
-
#
|
11
|
-
# IronWorker.config.no_upload = nil
|
12
|
-
# IronWorker.config.force_upload = true
|
13
|
-
#
|
14
|
-
# gen_worker
|
15
|
-
#
|
16
|
-
#end
|
17
|
-
#
|
18
|
-
#def gen_worker
|
19
|
-
# # copy our simplest worker
|
20
|
-
# new_file = "one_line_worker_#{Random.rand(100)}.rb"
|
21
|
-
# FileUtils.cp('workers/one_line_worker.rb', new_file)
|
22
|
-
# load new_file
|
23
|
-
#
|
24
|
-
# w = OneLineWorker.new
|
25
|
-
# w.queue
|
26
|
-
#end
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
data/test/test_webhooks.rb
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
require_relative 'test_base'
|
2
|
-
require_relative 'workers/webhook_worker'
|
3
|
-
|
4
|
-
|
5
|
-
class TestWebhooks < TestBase
|
6
|
-
|
7
|
-
def test_webhook
|
8
|
-
worker = WebhookWorker.new
|
9
|
-
worker.upload
|
10
|
-
|
11
|
-
code_name = worker.class.name
|
12
|
-
payload = "webhooked!"
|
13
|
-
|
14
|
-
# Now we hit the webhook
|
15
|
-
@uber_client = Rest::Client.new
|
16
|
-
puts 'TOKEN??? WTF?? ' + @token.inspect
|
17
|
-
url = "#{IronWorker.service.base_url}/projects/#{@project_id}/tasks/webhook?code_name=#{code_name}&oauth=#{@token}"
|
18
|
-
p url
|
19
|
-
resp = @uber_client.post(url, {:body => payload})
|
20
|
-
p resp
|
21
|
-
body = JSON.parse(resp.body)
|
22
|
-
p body
|
23
|
-
|
24
|
-
@task_id = body["id"]
|
25
|
-
|
26
|
-
url = "#{IronWorker.service.base_url}/projects/#{@project_id}/tasks/#{@task_id}?oauth=#{@token}"
|
27
|
-
p url
|
28
|
-
resp = @uber_client.get(url)
|
29
|
-
p resp
|
30
|
-
|
31
|
-
status = IronWorker.service.wait_until_complete(@task_id)
|
32
|
-
p status
|
33
|
-
assert status["status"]
|
34
|
-
puts status["msg"]
|
35
|
-
|
36
|
-
puts "LOG:"
|
37
|
-
log = IronWorker.service.get_log(@task_id)
|
38
|
-
puts log
|
39
|
-
assert log.include?(payload)
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
|
44
|
-
end
|
45
|
-
|
data/test/v2quick.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require_relative 'test_base'
|
2
|
-
require_relative 'one_line_worker'
|
3
|
-
|
4
|
-
class QuickRun < TestBase
|
5
|
-
|
6
|
-
def test_worker
|
7
|
-
|
8
|
-
scheds = IronWorker.service.schedules(:project_id=>"4e71843298ea9b6b9f000004")
|
9
|
-
puts scheds.inspect
|
10
|
-
|
11
|
-
jobs = IronWorker.service.jobs(:project_id=>"4e71843298ea9b6b9f000004")
|
12
|
-
puts jobs.inspect
|
13
|
-
|
14
|
-
workers = IronWorker.service.code(:project_id=>"4e71843298ea9b6b9f000004")
|
15
|
-
puts workers.inspect
|
16
|
-
|
17
|
-
worker = OneLineWorker.new
|
18
|
-
res = worker.queue(:project_id=>"4e71843298ea9b6b9f000004")
|
19
|
-
puts "worker.queue returns: " + res.inspect
|
20
|
-
job_id = res["task_id"]
|
21
|
-
|
22
|
-
sleep 10
|
23
|
-
|
24
|
-
log = worker.get_log(:project_id=>"4e71843298ea9b6b9f000004")
|
25
|
-
puts log.inspect
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
|
data/test/workers/awesome_job.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# bump..
|
2
|
-
class AwesomeJob < IronWorker::Base
|
3
|
-
merge_gem 'dropbox'
|
4
|
-
|
5
|
-
# todo: this one causes a stack level too deep error??
|
6
|
-
# merge_gem 'mongoid_i18n', :require => 'mongoid/i18n'
|
7
|
-
|
8
|
-
def run
|
9
|
-
begin
|
10
|
-
s = Dropbox::Session.new('...', '...')
|
11
|
-
rescue => ex
|
12
|
-
log "Dropbox doesn't like it when you don't have keys"
|
13
|
-
end
|
14
|
-
# s.mode = :dropbox
|
15
|
-
# s.authorizing_user = 'email@gmail.com'
|
16
|
-
# s.authorizing_password = '...'
|
17
|
-
# s.authorize!
|
18
|
-
#
|
19
|
-
# tmp_file = Tempfile.new('myfile.txt')
|
20
|
-
# tmp_file.write("blahblah")
|
21
|
-
# tmp_file.close
|
22
|
-
#
|
23
|
-
# s.upload tmp_file.path, 'Test'
|
24
|
-
# tmp_file.unlink
|
25
|
-
end
|
26
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# bump......
|
2
|
-
class BigDataWorker < IronWorker::Base
|
3
|
-
|
4
|
-
attr_accessor :x
|
5
|
-
|
6
|
-
def run
|
7
|
-
puts "hello world! #{x}"
|
8
|
-
sleep_for = 30
|
9
|
-
puts "sleeping for #{sleep_for} seconds..."
|
10
|
-
sleep sleep_for
|
11
|
-
puts "Done sleeping and done working."
|
12
|
-
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
@@ -1,35 +0,0 @@
|
|
1
|
-
|
2
|
-
RMAGICK_BYPASS_VERSION_TEST = true
|
3
|
-
|
4
|
-
class BigGemsWorker < IronWorker::Base
|
5
|
-
attr_accessor :x
|
6
|
-
#
|
7
|
-
#merge_gem 'activesupport', {:version => '3.1.3', :require=>'active_support/core_ext'}
|
8
|
-
##merge_gem 'railties', {:version => '3.1.3', :require => 'rails'}
|
9
|
-
#require 'mysql2'
|
10
|
-
#merge_gem 'activemodel', {:version => '3.1.3', :require=>'active_model'}
|
11
|
-
#merge_gem 'activemodel', {:version => '3.1.3', :require=>'active_model/secure_password'}
|
12
|
-
#
|
13
|
-
#merge_gem 'activerecord', {:version => '3.1.3', :require=>'active_record'}
|
14
|
-
#merge_gem 'actionmailer', {:version => '3.1.3', :require=>'action_mailer'}
|
15
|
-
#merge_gem 'actionpack', {:version => '3.1.3', :require => 'action_pack'}
|
16
|
-
#require 'RMagick'
|
17
|
-
#
|
18
|
-
merge_gem 'timecop'
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#merge_gem 'carrierwave', {:version => '0.5.8', :require => ['carrierwave', 'carrierwave/orm/activerecord']}
|
22
|
-
merge_gem 'fog'
|
23
|
-
##merge_gem 'friendly_id', {:version => '4.0.0.beta14'}
|
24
|
-
|
25
|
-
merge_gem 'concur'
|
26
|
-
|
27
|
-
merge_gem 'mechanize'
|
28
|
-
#unmerge_gem 'nokogiri'
|
29
|
-
|
30
|
-
merge_gem 'mail'
|
31
|
-
|
32
|
-
def run
|
33
|
-
log "hello"
|
34
|
-
end
|
35
|
-
end
|
data/test/workers/cool_worker.rb
DELETED
data/test/workers/db_worker.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# bump..........
|
2
|
-
#
|
3
|
-
#require 'mysql2'
|
4
|
-
#
|
5
|
-
#class DbWorker < IronWorker::Base
|
6
|
-
# merge_gem 'activerecord', :require=>'active_record'
|
7
|
-
# merge '../models/db_model'
|
8
|
-
#
|
9
|
-
#
|
10
|
-
# def run
|
11
|
-
#
|
12
|
-
# n = DbModel.new(:name=>"jane", :age=>21)
|
13
|
-
# n.save!
|
14
|
-
#
|
15
|
-
# to = DbModel.first
|
16
|
-
# puts 'found: ' + to.inspect
|
17
|
-
# @object = to
|
18
|
-
#
|
19
|
-
# n.delete
|
20
|
-
# end
|
21
|
-
#
|
22
|
-
# def ob
|
23
|
-
# @object
|
24
|
-
# end
|
25
|
-
#
|
26
|
-
#
|
27
|
-
#end
|