web_task_runner 0.0.1 → 0.0.3

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: 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.