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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +352 -0
  4. data/iron_worker.gemspec +3 -8
  5. data/lib/iron_worker.rb +13 -51
  6. data/lib/iron_worker/api_client.rb +152 -0
  7. data/lib/iron_worker/version.rb +9 -1
  8. data/lib/iron_worker/worker_helper.rb +72 -0
  9. metadata +18 -183
  10. data/README.markdown +0 -73
  11. data/lib/generators/iron_worker/iron_worker_generator.rb +0 -13
  12. data/lib/generators/iron_worker/templates/template_worker.erb +0 -7
  13. data/lib/iron_worker/api.rb +0 -244
  14. data/lib/iron_worker/base.rb +0 -449
  15. data/lib/iron_worker/config.rb +0 -287
  16. data/lib/iron_worker/rails2_init.rb +0 -8
  17. data/lib/iron_worker/railtie.rb +0 -16
  18. data/lib/iron_worker/server/overrides.rb +0 -198
  19. data/lib/iron_worker/server/runner.rb +0 -82
  20. data/lib/iron_worker/service.rb +0 -644
  21. data/lib/iron_worker/used_in_worker.rb +0 -11
  22. data/lib/iron_worker/utils.rb +0 -11
  23. data/rails/init.rb +0 -0
  24. data/test/Gemfile +0 -36
  25. data/test/Gemfile.lock +0 -169
  26. data/test/README.md +0 -5
  27. data/test/batch_run.rb +0 -121
  28. data/test/config_sample.yml +0 -13
  29. data/test/models/cool_model.rb +0 -7
  30. data/test/models/db_model.rb +0 -6
  31. data/test/models/model_1.rb +0 -16
  32. data/test/models/model_2.rb +0 -16
  33. data/test/quick_run.rb +0 -36
  34. data/test/quick_schedule.rb +0 -18
  35. data/test/resources/something.yml +0 -4
  36. data/test/simple_script.rb +0 -11
  37. data/test/test_base.rb +0 -79
  38. data/test/test_database.rb +0 -31
  39. data/test/test_gems.rb +0 -31
  40. data/test/test_inheritance.rb +0 -25
  41. data/test/test_iron_worker.rb +0 -194
  42. data/test/test_merging.rb +0 -51
  43. data/test/test_non_worker_script.rb +0 -14
  44. data/test/test_rails.rb +0 -35
  45. data/test/test_scheduling.rb +0 -74
  46. data/test/test_scheduling_no_active_support.rb +0 -37
  47. data/test/test_service.rb +0 -28
  48. data/test/test_uploads.rb +0 -30
  49. data/test/test_webhooks.rb +0 -45
  50. data/test/v2quick.rb +0 -29
  51. data/test/workers/awesome_job.rb +0 -26
  52. data/test/workers/aws_s3_worker.rb +0 -10
  53. data/test/workers/big_data_worker.rb +0 -15
  54. data/test/workers/big_gems_worker.rb +0 -35
  55. data/test/workers/cool_worker.rb +0 -14
  56. data/test/workers/db_worker.rb +0 -27
  57. data/test/workers/fail_worker.rb +0 -10
  58. data/test/workers/gem_dependency_worker.rb +0 -20
  59. data/test/workers/hacker_worker.rb +0 -65
  60. data/test/workers/iw_test_worker.rb +0 -22
  61. data/test/workers/iw_test_worker_2.rb +0 -53
  62. data/test/workers/iw_test_worker_3.rb +0 -17
  63. data/test/workers/local_vs_remote_worker.rb +0 -9
  64. data/test/workers/merging_worker.rb +0 -40
  65. data/test/workers/mq_worker.rb +0 -21
  66. data/test/workers/one_line_worker.rb +0 -10
  67. data/test/workers/prawn_worker.rb +0 -32
  68. data/test/workers/progress_worker.rb +0 -26
  69. data/test/workers/qb_worker.rb +0 -17
  70. data/test/workers/rails_worker.rb +0 -24
  71. data/test/workers/rails_worker2.rb +0 -12
  72. data/test/workers/requiring_worker.rb +0 -4
  73. data/test/workers/running_back_worker.rb +0 -7
  74. data/test/workers/scheduled_worker.rb +0 -15
  75. data/test/workers/second_worker.rb +0 -16
  76. data/test/workers/third_worker.rb +0 -6
  77. data/test/workers/webhook_worker.rb +0 -7
  78. 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
-
@@ -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
@@ -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
-
@@ -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,10 +0,0 @@
1
- # bump..
2
- class AwsS3Worker < IronWorker::Base
3
-
4
- merge_gem "aws-s3", :require => 'aws/s3'
5
-
6
- def run
7
- puts "i'm running"
8
- end
9
-
10
- 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
@@ -1,14 +0,0 @@
1
- # bump..
2
- class CoolWorker < IronWorker::Base
3
- attr_accessor :array_of_models
4
- merge '../models/cool_model'
5
-
6
-
7
- def run
8
- 10.times do |i|
9
- puts "HEY THERE PUTS #{i}"
10
- log "HEY THERE LOG #{i}"
11
- sleep 1
12
- end
13
- end
14
- end
@@ -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
@@ -1,10 +0,0 @@
1
- # bump......
2
- class FailWorker < IronWorker::Base
3
-
4
- attr_accessor :x
5
-
6
- def run
7
- puts "I am about to fail..."
8
- raise "I wanted to fail and I did!"
9
- end
10
- end