qpush 0.1.2 → 0.1.4
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 +4 -4
- data/.byebug_history +74 -0
- data/bin/qpush-server +0 -1
- data/bin/qpush-web +7 -1
- data/jobs/fail_job.rb +11 -0
- data/jobs/test_job.rb +2 -0
- data/lib/qpush/config.rb +0 -20
- data/lib/qpush/job.rb +11 -7
- data/lib/qpush/jobs/queue_delayed.rb +17 -0
- data/lib/qpush/redis.rb +36 -0
- data/lib/qpush/server.rb +20 -2
- data/lib/qpush/server/apis.rb +46 -0
- data/lib/qpush/server/apis/delay.rb +37 -0
- data/lib/qpush/server/apis/execute.rb +32 -0
- data/lib/qpush/server/apis/fail.rb +39 -0
- data/lib/qpush/server/apis/history.rb +36 -0
- data/lib/qpush/server/apis/morgue.rb +24 -0
- data/lib/qpush/server/apis/perform.rb +24 -0
- data/lib/qpush/server/apis/queue.rb +24 -0
- data/lib/qpush/server/apis/setup.rb +27 -0
- data/lib/qpush/server/apis/success.rb +39 -0
- data/lib/qpush/server/delay.rb +5 -5
- data/lib/qpush/server/errors.rb +1 -16
- data/lib/qpush/server/heartbeat.rb +28 -0
- data/lib/qpush/server/jobs.rb +10 -55
- data/lib/qpush/server/launcher.rb +5 -5
- data/lib/qpush/server/loader.rb +38 -0
- data/lib/qpush/server/perform.rb +2 -2
- data/lib/qpush/server/queue.rb +2 -2
- data/lib/qpush/server/worker.rb +1 -0
- data/lib/qpush/version.rb +1 -1
- data/lib/qpush/web.rb +10 -1
- data/lib/qpush/web/apis/crons.rb +34 -0
- data/lib/qpush/web/apis/heart.rb +12 -0
- data/lib/qpush/web/apis/history.rb +28 -0
- data/lib/qpush/web/apis/jobs.rb +26 -0
- data/lib/qpush/web/apis/morgue.rb +30 -0
- data/lib/qpush/web/apis/queue_delayed.rb +29 -0
- data/lib/qpush/web/apis/queued.rb +0 -0
- data/lib/qpush/web/apis/retries.rb +40 -0
- data/lib/qpush/web/apis/stats.rb +58 -0
- data/lib/qpush/web/get.rb +32 -34
- data/lib/qpush/web/post.rb +8 -0
- data/lib/qpush/web/server.rb +34 -5
- data/qpush.gemspec +1 -0
- metadata +40 -3
- data/lib/qpush/server/execute.rb +0 -100
data/qpush.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_runtime_dependency "object_validator"
|
24
24
|
spec.add_runtime_dependency "sequel", "~> 4.18"
|
25
25
|
spec.add_runtime_dependency "sinatra", "~> 1.4"
|
26
|
+
spec.add_runtime_dependency "sinatra-cross_origin"
|
26
27
|
spec.add_runtime_dependency "parse-cron", "~> 0.1"
|
27
28
|
spec.add_development_dependency "byebug"
|
28
29
|
spec.add_development_dependency "bundler", "~> 1.12"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qpush
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas Sweeting
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.4'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sinatra-cross_origin
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: parse-cron
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -171,19 +185,32 @@ files:
|
|
171
185
|
- bin/qpush-server
|
172
186
|
- bin/qpush-web
|
173
187
|
- bin/setup
|
188
|
+
- jobs/fail_job.rb
|
174
189
|
- jobs/test_job.rb
|
175
190
|
- lib/qpush.rb
|
176
191
|
- lib/qpush/base.rb
|
177
192
|
- lib/qpush/config.rb
|
178
193
|
- lib/qpush/job.rb
|
194
|
+
- lib/qpush/jobs/queue_delayed.rb
|
179
195
|
- lib/qpush/redis.rb
|
180
196
|
- lib/qpush/server.rb
|
197
|
+
- lib/qpush/server/apis.rb
|
198
|
+
- lib/qpush/server/apis/delay.rb
|
199
|
+
- lib/qpush/server/apis/execute.rb
|
200
|
+
- lib/qpush/server/apis/fail.rb
|
201
|
+
- lib/qpush/server/apis/history.rb
|
202
|
+
- lib/qpush/server/apis/morgue.rb
|
203
|
+
- lib/qpush/server/apis/perform.rb
|
204
|
+
- lib/qpush/server/apis/queue.rb
|
205
|
+
- lib/qpush/server/apis/setup.rb
|
206
|
+
- lib/qpush/server/apis/success.rb
|
181
207
|
- lib/qpush/server/database.rb
|
182
208
|
- lib/qpush/server/delay.rb
|
183
209
|
- lib/qpush/server/errors.rb
|
184
|
-
- lib/qpush/server/
|
210
|
+
- lib/qpush/server/heartbeat.rb
|
185
211
|
- lib/qpush/server/jobs.rb
|
186
212
|
- lib/qpush/server/launcher.rb
|
213
|
+
- lib/qpush/server/loader.rb
|
187
214
|
- lib/qpush/server/logger.rb
|
188
215
|
- lib/qpush/server/manager.rb
|
189
216
|
- lib/qpush/server/perform.rb
|
@@ -191,7 +218,17 @@ files:
|
|
191
218
|
- lib/qpush/server/worker.rb
|
192
219
|
- lib/qpush/version.rb
|
193
220
|
- lib/qpush/web.rb
|
221
|
+
- lib/qpush/web/apis/crons.rb
|
222
|
+
- lib/qpush/web/apis/heart.rb
|
223
|
+
- lib/qpush/web/apis/history.rb
|
224
|
+
- lib/qpush/web/apis/jobs.rb
|
225
|
+
- lib/qpush/web/apis/morgue.rb
|
226
|
+
- lib/qpush/web/apis/queue_delayed.rb
|
227
|
+
- lib/qpush/web/apis/queued.rb
|
228
|
+
- lib/qpush/web/apis/retries.rb
|
229
|
+
- lib/qpush/web/apis/stats.rb
|
194
230
|
- lib/qpush/web/get.rb
|
231
|
+
- lib/qpush/web/post.rb
|
195
232
|
- lib/qpush/web/server.rb
|
196
233
|
- lib/qpush/web/server.ru
|
197
234
|
- qpush.gemspec
|
data/lib/qpush/server/execute.rb
DELETED
@@ -1,100 +0,0 @@
|
|
1
|
-
module QPush
|
2
|
-
module Server
|
3
|
-
class Execute
|
4
|
-
def initialize(job)
|
5
|
-
@job = job
|
6
|
-
end
|
7
|
-
|
8
|
-
def call
|
9
|
-
measure_run_time { job_object.call }
|
10
|
-
ExecutionSuccess.call(@job)
|
11
|
-
rescue => e
|
12
|
-
ExecutionFail.call(@job, e)
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def measure_run_time
|
18
|
-
start = Time.now
|
19
|
-
yield
|
20
|
-
finish = Time.now
|
21
|
-
@job.run_time = "#{((finish - start) * 1000.0).round(3)} ms"
|
22
|
-
end
|
23
|
-
|
24
|
-
def job_object
|
25
|
-
klass = Object.const_get(@job.klass)
|
26
|
-
@job.args.empty? ? klass.new : klass.new(@job.args)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
class ExecutionFail
|
31
|
-
def self.call(*args)
|
32
|
-
failed = ExecutionFail.new(*args)
|
33
|
-
failed.call
|
34
|
-
end
|
35
|
-
|
36
|
-
def initialize(job, error)
|
37
|
-
@job = job
|
38
|
-
@error = error
|
39
|
-
end
|
40
|
-
|
41
|
-
def call
|
42
|
-
update_job
|
43
|
-
stat_increment
|
44
|
-
log_error
|
45
|
-
end
|
46
|
-
|
47
|
-
private
|
48
|
-
|
49
|
-
def update_job
|
50
|
-
@job.bump_fail
|
51
|
-
@job.api.retry if @job.retry_job?
|
52
|
-
end
|
53
|
-
|
54
|
-
def stat_increment
|
55
|
-
QPush.redis.with do |c|
|
56
|
-
c.incr("#{QPush.config.stats_namespace}:dead") if @job.dead_job?
|
57
|
-
c.incr("#{QPush.config.stats_namespace}:failed")
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def log_error
|
62
|
-
Server.log.err("Job FAILED | #{@job.klass} | #{@job.id} | #{@error.message}")
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
class ExecutionSuccess
|
67
|
-
def self.call(*args)
|
68
|
-
success = ExecutionSuccess.new(*args)
|
69
|
-
success.call
|
70
|
-
end
|
71
|
-
|
72
|
-
def initialize(job)
|
73
|
-
@job = job
|
74
|
-
end
|
75
|
-
|
76
|
-
def call
|
77
|
-
update_job
|
78
|
-
stat_increment
|
79
|
-
log_success
|
80
|
-
end
|
81
|
-
|
82
|
-
private
|
83
|
-
|
84
|
-
def update_job
|
85
|
-
@job.bump_success
|
86
|
-
@job.api.delay if @job.delay_job?
|
87
|
-
end
|
88
|
-
|
89
|
-
def stat_increment
|
90
|
-
QPush.redis.with do |c|
|
91
|
-
c.incr("#{QPush.config.stats_namespace}:success")
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def log_success
|
96
|
-
Server.log.info("Job SUCCESS | #{@job.klass} with ID: #{@job.id} | #{@job.run_time}")
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|