simple_worker 0.3.6 → 0.3.8

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.
@@ -11,9 +11,11 @@ module SimpleWorker
11
11
  class << self
12
12
  attr_accessor :subclass, :caller_file
13
13
  @merged = []
14
+ @merged_workers = []
14
15
 
15
16
  def reset!
16
17
  @merged = []
18
+ @merged_workers = []
17
19
  end
18
20
 
19
21
  def inherited(subclass)
@@ -43,6 +45,13 @@ module SimpleWorker
43
45
  @merged << File.expand_path(f)
44
46
  end
45
47
  end
48
+
49
+ def merge_worker(file, class_name)
50
+ puts 'merge_worker in ' + self.name
51
+ puts 'FUCK'
52
+ merge(file)
53
+ @merged_workers << [File.expand_path(file), class_name]
54
+ end
46
55
  end
47
56
 
48
57
 
@@ -65,6 +74,7 @@ module SimpleWorker
65
74
 
66
75
  # Will send in all instance_variables.
67
76
  def queue
77
+ puts 'in queue'
68
78
  upload_if_needed
69
79
 
70
80
  response = SimpleWorker.service.queue(self.class.name, sw_get_data)
@@ -78,6 +88,9 @@ module SimpleWorker
78
88
  SimpleWorker.service.status(task_id)
79
89
  end
80
90
 
91
+ def upload
92
+ upload_if_needed
93
+ end
81
94
 
82
95
  def schedule(schedule)
83
96
  upload_if_needed
@@ -92,23 +105,11 @@ module SimpleWorker
92
105
  SimpleWorker.service.schedule_status(schedule_id)
93
106
  end
94
107
 
95
-
96
- # def queue_other(class_name, data)
97
- # SimpleWorker.service.queue(class_name, data)
98
- # end
99
- #
100
- # def schedule_other(class_name, data, schedule)
101
- # SimpleWorker.service.schedule(class_name, data, schedule)
102
- # end
103
-
104
108
  private
105
-
109
+
106
110
  def upload_if_needed
107
111
 
108
- # $LOADED_FEATURES.each_with_index { |feature, idx|
109
- # puts "#{ sprintf("%2s", idx) } #{feature}"
110
- # if feature[feature.rindex("/")..feature.length] ==
111
- #}
112
+ puts 'upload_if_needed'
112
113
  unless uploaded?
113
114
  subclass = self.class
114
115
  rfile = subclass.instance_variable_get(:@caller_file) # Base.caller_file # File.expand_path(Base.subclass)
@@ -119,6 +120,13 @@ module SimpleWorker
119
120
  else
120
121
  puts 'already uploaded for ' + self.class.name
121
122
  end
123
+ puts 'uploading merged workers'
124
+ self.class.instance_variable_get(:@merged_workers).each do |mw|
125
+ # to support merges in the secondary worker, we should instantiate it here, then call "upload"
126
+ puts 'instantiating and uploading ' + mw[1]
127
+ Kernel.const_get(mw[1]).new.upload
128
+ # SimpleWorker.service.upload(mw[0], mw[1])
129
+ end
122
130
  end
123
131
 
124
132
  def sw_get_data
@@ -2,7 +2,7 @@ module SimpleWorker
2
2
  module UsedInWorker
3
3
 
4
4
  def log(str)
5
- puts 'gem usedinowrker log=' + str.to_s
5
+ puts 'gem usedinworker log=' + str.to_s
6
6
  # puts str.to_s
7
7
  end
8
8
  end
data/lib/simple_worker.rb CHANGED
@@ -1,8 +1,11 @@
1
+ puts 'REQUIRING THIS SHIT!'
2
+
1
3
  require 'appoxy_api'
2
4
  require File.join(File.dirname(__FILE__), 'simple_worker', 'base')
3
5
  require File.join(File.dirname(__FILE__), 'simple_worker', 'config')
4
6
  require File.join(File.dirname(__FILE__), 'simple_worker', 'used_in_worker')
5
7
 
8
+
6
9
  module SimpleWorker
7
10
 
8
11
  class << self
@@ -1,7 +1,8 @@
1
1
  begin
2
- require File.join(File.dirname(__FILE__), '../lib/simple_worker')
3
- rescue Exception
4
- require 'simple_worker'
2
+ require File.join(File.dirname(__FILE__), '../../lib/simple_worker')
3
+ rescue Exception => ex
4
+ puts 'ERROR!!! ' + ex.message
5
+ # require 'simple_worker'
5
6
  end
6
7
 
7
8
 
@@ -1,4 +1,9 @@
1
- require 'simple_worker'
1
+ begin
2
+ require File.join(File.dirname(__FILE__), '../lib/simple_worker')
3
+ rescue Exception
4
+ require 'simple_worker'
5
+ end
6
+
2
7
 
3
8
  class ScheduledWorker < SimpleWorker::Base
4
9
 
@@ -1,6 +1,14 @@
1
+ begin
2
+ require File.join(File.dirname(__FILE__), '../lib/simple_worker')
3
+ rescue Exception => ex
4
+ puts ex.message
5
+ require 'simple_worker'
6
+ end
7
+
1
8
  class SecondWorker < SimpleWorker::Base
2
9
  attr_accessor :start_time, :num
3
10
 
11
+ # change
4
12
 
5
13
  def run
6
14
  log self.to_s
@@ -2,7 +2,8 @@ require 'test/unit'
2
2
  require 'yaml'
3
3
  begin
4
4
  require File.join(File.dirname(__FILE__), '../lib/simple_worker')
5
- rescue
5
+ rescue Exception => ex
6
+ puts ex.message
6
7
  require 'simple_worker'
7
8
  end
8
9
  require File.join(File.dirname(__FILE__), "./test_worker")
@@ -48,7 +49,10 @@ class SimpleWorkerTests < Test::Unit::TestCase
48
49
  # end
49
50
 
50
51
  # queue up a task
52
+ puts 'queuing ' + tw.inspect
51
53
  response_hash_single = tw.queue
54
+
55
+
52
56
  puts 'response_hash=' + response_hash_single.inspect
53
57
  puts 'task_set_id=' + tw.task_set_id
54
58
  puts 'task_id=' + tw.task_id
@@ -61,64 +65,64 @@ class SimpleWorkerTests < Test::Unit::TestCase
61
65
  assert tw.status["status"] == "complete"
62
66
 
63
67
  end
64
-
65
-
66
- def test_queue
67
-
68
-
69
- # Upload latest runner code
70
- @worker.upload(File.join(File.dirname(__FILE__), "./test_worker.rb"), "TestWorker")
71
-
72
- # Add something to queue, get task ID back
73
- # Single task
74
- response_hash_single = @worker.queue("TestWorker", {"s3_key"=>"single runner", "times"=>10})
75
-
76
- # task set
77
- response_hash = @worker.queue("TestWorker", [{"id"=>"local_id", "s3_key"=>"some key", "times"=>4}, {"s3_key"=>"some key2", "times"=>3}, {"s3_key"=>"some key", "times"=>2}])
78
-
79
- # Check status
80
- tasks = response_hash["tasks"]
81
- puts 'tasks.size=' + tasks.size.to_s
82
- while tasks.size > 0
83
- tasks.each do |t|
84
- puts "t=" + t.inspect
85
- status_response = @worker.status(t["task_id"])
86
- puts 'status for ' + t["task_id"] + ' = ' + status_response["status"]
87
- if status_response["status"] == "complete" || status_response["status"] == "error" || status_response["status"] == "cancelled"
88
- tasks.delete(t)
89
- end
90
- end
91
- end
92
-
93
- # lets try to get the log now too
94
- task_id = response_hash_single["tasks"][0]["task_id"]
95
- puts 'task_id=' + task_id
96
- status_with_log = @worker.log(task_id)
97
- puts 'log=' + status_with_log.inspect
98
-
99
- end
100
-
101
- def test_scheduled
102
-
103
- # Upload latest runner code
104
- @worker.upload(File.join(File.dirname(__FILE__), "./scheduled_worker.rb"), "ScheduledWorker")
105
-
106
- start_at = 10.seconds.since
107
- #start_at = start_at.gmtime # testing different timezone
108
- puts 'start_at =' + start_at.inspect
109
- response_hash = @worker.schedule("ScheduledWorker", {"msg"=>"One time test."}, {:start_at=>start_at})
110
- puts 'response_hash=' + response_hash.inspect
111
-
112
- start_at = 10.seconds.since
113
- response_hash = @worker.schedule("ScheduledWorker", {"msg"=>"Run times test"}, {:start_at=>start_at, :run_every=>30, :run_times=>3})
114
- puts 'response_hash=' + response_hash.inspect
115
-
116
- start_at = 10.seconds.since
117
- end_at = 2.minutes.since
118
- response_hash = @worker.schedule("ScheduledWorker", {"msg"=>"End at test"}, {:start_at=>start_at, :run_every=>30, :end_at=>end_at, :run_times=>20})
119
- puts 'response_hash=' + response_hash.inspect
120
-
121
- end
68
+ #
69
+ #
70
+ # def test_queue
71
+ #
72
+ #
73
+ # # Upload latest runner code
74
+ # @worker.upload(File.join(File.dirname(__FILE__), "./test_worker.rb"), "TestWorker")
75
+ #
76
+ # # Add something to queue, get task ID back
77
+ # # Single task
78
+ # response_hash_single = @worker.queue("TestWorker", {"s3_key"=>"single runner", "times"=>10})
79
+ #
80
+ # # task set
81
+ # response_hash = @worker.queue("TestWorker", [{"id"=>"local_id", "s3_key"=>"some key", "times"=>4}, {"s3_key"=>"some key2", "times"=>3}, {"s3_key"=>"some key", "times"=>2}])
82
+ #
83
+ # # Check status
84
+ # tasks = response_hash["tasks"]
85
+ # puts 'tasks.size=' + tasks.size.to_s
86
+ # while tasks.size > 0
87
+ # tasks.each do |t|
88
+ # puts "t=" + t.inspect
89
+ # status_response = @worker.status(t["task_id"])
90
+ # puts 'status for ' + t["task_id"] + ' = ' + status_response["status"]
91
+ # if status_response["status"] == "complete" || status_response["status"] == "error" || status_response["status"] == "cancelled"
92
+ # tasks.delete(t)
93
+ # end
94
+ # end
95
+ # end
96
+ #
97
+ # # lets try to get the log now too
98
+ # task_id = response_hash_single["tasks"][0]["task_id"]
99
+ # puts 'task_id=' + task_id
100
+ # status_with_log = @worker.log(task_id)
101
+ # puts 'log=' + status_with_log.inspect
102
+ #
103
+ # end
104
+ #
105
+ # def test_scheduled
106
+ #
107
+ # # Upload latest runner code
108
+ # @worker.upload(File.join(File.dirname(__FILE__), "./scheduled_worker.rb"), "ScheduledWorker")
109
+ #
110
+ # start_at = 10.seconds.since
111
+ # #start_at = start_at.gmtime # testing different timezone
112
+ # puts 'start_at =' + start_at.inspect
113
+ # response_hash = @worker.schedule("ScheduledWorker", {"msg"=>"One time test."}, {:start_at=>start_at})
114
+ # puts 'response_hash=' + response_hash.inspect
115
+ #
116
+ # start_at = 10.seconds.since
117
+ # response_hash = @worker.schedule("ScheduledWorker", {"msg"=>"Run times test"}, {:start_at=>start_at, :run_every=>30, :run_times=>3})
118
+ # puts 'response_hash=' + response_hash.inspect
119
+ #
120
+ # start_at = 10.seconds.since
121
+ # end_at = 2.minutes.since
122
+ # response_hash = @worker.schedule("ScheduledWorker", {"msg"=>"End at test"}, {:start_at=>start_at, :run_every=>30, :end_at=>end_at, :run_times=>20})
123
+ # puts 'response_hash=' + response_hash.inspect
124
+ #
125
+ # end
122
126
 
123
127
  end
124
128
 
data/test/test_worker.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  begin
2
2
  require File.join(File.dirname(__FILE__), '../lib/simple_worker')
3
- rescue Exception
3
+ rescue Exception => ex
4
+ puts ex.message
4
5
  require 'simple_worker'
5
6
  end
6
7
  # Bump for new checksum.
@@ -1,14 +1,15 @@
1
1
  begin
2
2
  require File.join(File.dirname(__FILE__), '../lib/simple_worker')
3
- rescue Exception
3
+ rescue Exception => ex
4
+ puts ex.message
4
5
  require 'simple_worker'
5
6
  end
6
7
 
7
- # Bump for new checksum.
8
+ # Bump for new checksum.sdf
8
9
  class TestWorker2 < SimpleWorker::Base
9
10
 
10
11
  merge 'models/model_1.rb'
11
- merge 'second_worker.rb'
12
+ merge_worker 'second_worker.rb', 'SecondWorker'
12
13
 
13
14
  attr_accessor :s3_key, :times, :x
14
15
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_worker
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 6
10
- version: 0.3.6
9
+ - 8
10
+ version: 0.3.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Travis Reeder