web_task_runner 0.0.1 → 0.0.3

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: c5828a4e9a9b521c206ae34e2102f30ff0cfe5b9
4
- data.tar.gz: ecec3fabb1fde45795da529adef6153adb9bc514
3
+ metadata.gz: bdec9baba18e0b759dc963ce14a40a2ca43e2d0b
4
+ data.tar.gz: 05347f39262584e75fdd616d97a392a7bcfc0a3c
5
5
  SHA512:
6
- metadata.gz: 5b25a18f7e7f56786a4a13a617c4f70fd192db8f65be0a2638e0c40369998e7d0c1be8815ae8c962d8e39f298531ef66e21a58c901e9a40e67dc8131a4e62452
7
- data.tar.gz: 3c2210c4ea5266cd889975bb4f5da9d200bd21abb9a88f8c1b111e19442489b2925ffc3add379d7acbf50cd1b0bbad7ee851cf82223f752227f0fe6c6bc8f0a9
6
+ metadata.gz: 7454a52b416e09857ca43f4efc25a45b18afab282126adc360141852e546037d46cfdedff700ae8a3875ee0a80df532ac709fbaf5535cbd293be88c2ddd81610
7
+ data.tar.gz: 27b3f5da7619976c9fe65d7ff843b3f952402795cc0019c7373c29c95038d73cd5988c0bb8ad7610847e7f09dda9910ef230971df9e8d3d6c93a125e9cb90046
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # WebTaskRunner
1
+ # WebTaskRunner [![Gem Version](https://badge.fury.io/rb/web_task_runner.svg)](http://badge.fury.io/rb/web_task_runner) [![Build Status](https://travis-ci.org/Neson/web_task_runner.svg?branch=master)](https://travis-ci.org/Neson/web_task_runner) [![Documentation Status](http://inch-ci.org/github/Neson/web_task_runner.svg?branch=master)](http://inch-ci.org/github/Neson/web_task_runner)
2
2
 
3
3
  Web wrapper to run a specific task with [Sidekiq](http://sidekiq.org/).
4
4
  Provides HTTP API to start, stop, get status of the task running in background,
data/Rakefile CHANGED
@@ -1 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
+ require File.join('rspec', 'core', 'rake_task')
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -9,6 +9,8 @@ require "web_task_runner/redis_module"
9
9
  require "web_task_runner/task_worker"
10
10
 
11
11
  class WebTaskRunner < Sinatra::Application
12
+ VERSION = WebTaskRunnerVersion::VERSION
13
+
12
14
  @@jobs = []
13
15
 
14
16
  def self.jobs
@@ -46,13 +48,13 @@ class WebTaskRunner < Sinatra::Application
46
48
  return 'kill'
47
49
  end
48
50
 
49
- # Report that a worker has done working, call this in each worker after
51
+ # Report that a job has been done, call this in each job after
50
52
  # the work has done
51
- def self.work_ended(all: false)
53
+ def self.job_ended(all: false)
52
54
  if all
53
55
  WebTaskRunner::RedisModule.redis.set('task:working_jobs', 0)
54
56
  else
55
- # decrease the working workers count
57
+ # decrease the working jobss count
56
58
  WebTaskRunner::RedisModule.redis.decr('task:working_jobs')
57
59
  end
58
60
 
@@ -64,11 +66,11 @@ class WebTaskRunner < Sinatra::Application
64
66
  end
65
67
 
66
68
  # Sets the progress of the current work
67
- # It can be used like this in the worker: +WebTaskRunner.work_2_progress = 0.8+
69
+ # It can be used like this in the worker: +WebTaskRunner.job_2_progress = 0.8+
68
70
  1000.times do |i|
69
71
  i += 1
70
72
  define_singleton_method("job_#{i}_progress=") do |progress|
71
- WebTaskRunner::RedisModule.redis.set("task:worker_#{i}_progress", progress)
73
+ WebTaskRunner::RedisModule.redis.set("task:job_#{i}_progress", progress)
72
74
  end
73
75
  end
74
76
 
@@ -78,7 +80,7 @@ class WebTaskRunner < Sinatra::Application
78
80
  WebTaskRunner::RedisModule.redis.set('task:state', 'working')
79
81
  WebTaskRunner::RedisModule.redis.set('task:started_at', Time.now)
80
82
 
81
- # Set the count of worker that should be started
83
+ # Set the count of jobs that should be started
82
84
  jobs_count = @@jobs.count
83
85
 
84
86
  # Start the worker here
@@ -87,10 +89,10 @@ class WebTaskRunner < Sinatra::Application
87
89
  WebTaskRunner::RedisModule.redis.set('task:task_jobs', jobs_count)
88
90
  WebTaskRunner::RedisModule.redis.set('task:working_jobs', jobs_count)
89
91
 
90
- # Reset the progress of each worker
92
+ # Reset the progress of each job
91
93
  jobs_count.times do |i|
92
94
  i -= 1
93
- WebTaskRunner::RedisModule.redis.set("task:worker_#{i}_progress", 0)
95
+ WebTaskRunner::RedisModule.redis.set("task:job_#{i}_progress", 0)
94
96
  end
95
97
  end
96
98
 
@@ -138,12 +140,12 @@ class WebTaskRunner < Sinatra::Application
138
140
  def self.task_progress
139
141
  return nil if current_state == 'idle'
140
142
  task_jobs = WebTaskRunner::RedisModule.redis.get('task:task_jobs').to_i
141
- return nil unless task_jobs
143
+ return nil if task_jobs < 1
142
144
  total_progress = 0.0
143
145
 
144
146
  task_jobs.times do |i|
145
147
  i += 1
146
- total_progress += WebTaskRunner::RedisModule.redis.get("task:worker_#{i}_progress").to_f
148
+ total_progress += WebTaskRunner::RedisModule.redis.get("task:job_#{i}_progress").to_f
147
149
  end
148
150
 
149
151
  total_progress / task_jobs.to_f
@@ -15,7 +15,7 @@ class WebTaskRunner < Sinatra::Application
15
15
  exec
16
16
 
17
17
  puts "Job ##{job_number} done."
18
- WebTaskRunner.work_ended
18
+ WebTaskRunner.job_ended
19
19
  end
20
20
 
21
21
  def job_number
@@ -1,5 +1,3 @@
1
- require 'sinatra'
2
-
3
- class WebTaskRunner < Sinatra::Application
4
- VERSION = "0.0.1"
1
+ class WebTaskRunnerVersion
2
+ VERSION = "0.0.3"
5
3
  end
@@ -5,7 +5,7 @@ require 'web_task_runner/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "web_task_runner"
8
- spec.version = WebTaskRunner::VERSION
8
+ spec.version = WebTaskRunnerVersion::VERSION
9
9
  spec.authors = ["Neson"]
10
10
  spec.email = ["neson@dex.tw"]
11
11
 
@@ -37,6 +37,7 @@ Gem::Specification.new do |spec|
37
37
  # Utilities
38
38
  spec.add_dependency "dotenv"
39
39
 
40
- spec.add_development_dependency "bundler", "~> 1.9"
41
- spec.add_development_dependency "rake", "~> 10.0"
40
+ spec.add_development_dependency "bundler"
41
+ spec.add_development_dependency "rake"
42
+ spec.add_development_dependency "rspec"
42
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web_task_runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neson
@@ -84,30 +84,44 @@ dependencies:
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '1.9'
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '1.9'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '10.0'
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '10.0'
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: Web wrapper to run a specific task with Sidekiq. Provides HTTP API to
112
126
  start, stop, get status of the task running in background, and is deployable to
113
127
  cloud platforms like Heroku.