web_task_runner 0.0.5 → 0.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aa3d96c91c52ee015b141cdfd3a166f9ab0ae680
4
- data.tar.gz: 21bd106643b4e50183b9fa5232cff82f2902fc1b
3
+ metadata.gz: db3a6ff7044e2cf38418acfb0264c2617886f6ee
4
+ data.tar.gz: 18a2e1c11ad0ba7bae013df1180282600c2d84a0
5
5
  SHA512:
6
- metadata.gz: 2118e07ec979f23255dcb1ab83ec17a58d131a0fcdf3033bd1ffcb0bd1e7f95ec4f7175939e5195f4863d3fb905389c67f058ef0f3e21c469cb0f3529270318d
7
- data.tar.gz: a9c40f240304c6543d0d8bc6f38c14c9b3274c89223caf510c64b5514282ebb78dabcf2a4af9e0a181c0a2d6f537fdb1c823a7f6f1418d80346f1121059bf317
6
+ metadata.gz: 57904e2bd566bdced869a6eb04d32d305358d86e003f745311cc8463fd497a8aa51294180498eb219594663ffcdaa7daa1f5365c8080b340488281c4ebee24ec
7
+ data.tar.gz: eb6a81d215145061e69caffda120801ac7cdbc078e760cce181993cd6d3ed728de4c0573cb6554c45885cba4cee7aac841d70070c3a4dc123c1ef0044be8278e
data/README.md CHANGED
@@ -155,9 +155,11 @@ require 'web_task_runner'
155
155
 
156
156
  class MyWorkOne < WebTaskRunner::TaskWorker
157
157
  def exec
158
- # sleep one second for ten times
158
+ # yes - you can access all parameters passed with the request
159
+ x = params[:time] || 1
160
+ # sleep x second(s) for ten times
159
161
  10.times do |i|
160
- sleep(1)
162
+ sleep(x)
161
163
  raise if Random.rand(100) < 2 # simulate errors
162
164
  end
163
165
  end
@@ -174,9 +176,11 @@ require 'web_task_runner'
174
176
 
175
177
  class MyWorkOne < WebTaskRunner::TaskWorker
176
178
  def exec
177
- # sleep one second for ten times
179
+ # yes - you can access all parameters passed with the request
180
+ x = params[:time] || 1
181
+ # sleep x second(s) for ten times
178
182
  10.times do |i|
179
- sleep(1)
183
+ sleep(x)
180
184
  raise if Random.rand(100) < 2 # simulate errors
181
185
  # report the current progress
182
186
  WebTaskRunner.job_1_progress = (i + 1) / 10.0
@@ -17,31 +17,25 @@ class WebTaskRunner < Sinatra::Application
17
17
  @@jobs
18
18
  end
19
19
 
20
- # GET /?key=<api_key> - retrieve current state of the task runner
21
- get '/' do
20
+ before do
22
21
  # Authorize the request
23
22
  error 401, JSON.pretty_generate(error: 'Unauthorized') and \
24
23
  return if ENV['API_KEY'] != params[:key]
24
+ end
25
25
 
26
+ # GET /?key=<api_key> - retrieve current state of the task runner
27
+ get '/' do
26
28
  return JSON.pretty_generate(current_info)
27
29
  end
28
30
 
29
31
  # GET /?key=<api_key> - retrieve current status of the task
30
32
  get '/status' do
31
- # Authorize the request
32
- error 401, JSON.pretty_generate(error: 'Unauthorized') and \
33
- return if ENV['API_KEY'] != params[:key]
34
-
35
33
  return JSON.pretty_generate(current_status)
36
34
  end
37
35
 
38
36
  # GET /start?key=<api_key> - start the task if idle
39
37
  get '/start' do
40
- # Authorize the request
41
- error 401, JSON.pretty_generate(error: 'Unauthorized') and \
42
- return if ENV['API_KEY'] != params[:key]
43
-
44
- start_task_if_idle
38
+ start_task_if_idle(params)
45
39
 
46
40
  link = "#{request.env['rack.url_scheme']}://#{request.env['HTTP_HOST']}/status?key=#{params[:key]}"
47
41
 
@@ -51,10 +45,6 @@ class WebTaskRunner < Sinatra::Application
51
45
 
52
46
  # GET /stop?key=<api_key> - kill the working task
53
47
  get '/stop' do
54
- # Authorize the request
55
- error 401, JSON.pretty_generate(error: 'Unauthorized') and \
56
- return if ENV['API_KEY'] != params[:key]
57
-
58
48
  kill_task
59
49
 
60
50
  return JSON.pretty_generate(current_status)
@@ -88,7 +78,7 @@ class WebTaskRunner < Sinatra::Application
88
78
  end
89
79
 
90
80
  # Starts (or kill and restart) the task
91
- def self.start_task
81
+ def self.start_task(params = nil)
92
82
  kill_task
93
83
  WebTaskRunner::RedisModule.redis.set('task:state', 'working')
94
84
  WebTaskRunner::RedisModule.redis.set('task:status', 'processing')
@@ -98,7 +88,9 @@ class WebTaskRunner < Sinatra::Application
98
88
  jobs_count = @@jobs.count
99
89
 
100
90
  # Start the worker here
101
- @@jobs.each(&:perform_async)
91
+ @@jobs.each do |job|
92
+ job.perform_async(params)
93
+ end
102
94
 
103
95
  WebTaskRunner::RedisModule.redis.set('task:task_jobs', jobs_count)
104
96
  WebTaskRunner::RedisModule.redis.set('task:working_jobs', jobs_count)
@@ -110,18 +102,18 @@ class WebTaskRunner < Sinatra::Application
110
102
  end
111
103
  end
112
104
 
113
- def start_task # :nodoc:
114
- WebTaskRunner.start_task
105
+ def start_task(params = nil) # :nodoc:
106
+ WebTaskRunner.start_task(params)
115
107
  end
116
108
 
117
109
  # Starts the task if it's not running
118
- def self.start_task_if_idle
110
+ def self.start_task_if_idle(params = nil)
119
111
  return unless current_state == 'idle'
120
- start_task
112
+ start_task(params)
121
113
  end
122
114
 
123
- def start_task_if_idle # :nodoc:
124
- WebTaskRunner.start_task_if_idle
115
+ def start_task_if_idle(params = nil) # :nodoc:
116
+ WebTaskRunner.start_task_if_idle(params)
125
117
  end
126
118
 
127
119
  # Kills the running task
@@ -9,8 +9,11 @@ class WebTaskRunner < Sinatra::Application
9
9
  include Sidekiq::Worker
10
10
  include Sidekiq::Status::Worker
11
11
 
12
- def perform
12
+ attr_accessor :params
13
+
14
+ def perform(params)
13
15
  return if WebTaskRunner.current_state == 'idle'
16
+ self.params = params || {}
14
17
 
15
18
  exec
16
19
 
@@ -1,3 +1,3 @@
1
1
  class WebTaskRunnerVersion
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web_task_runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-29 00:00:00.000000000 Z
11
+ date: 2015-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra