web_task_runner 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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