qpush 0.1.2 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.byebug_history +74 -0
  3. data/bin/qpush-server +0 -1
  4. data/bin/qpush-web +7 -1
  5. data/jobs/fail_job.rb +11 -0
  6. data/jobs/test_job.rb +2 -0
  7. data/lib/qpush/config.rb +0 -20
  8. data/lib/qpush/job.rb +11 -7
  9. data/lib/qpush/jobs/queue_delayed.rb +17 -0
  10. data/lib/qpush/redis.rb +36 -0
  11. data/lib/qpush/server.rb +20 -2
  12. data/lib/qpush/server/apis.rb +46 -0
  13. data/lib/qpush/server/apis/delay.rb +37 -0
  14. data/lib/qpush/server/apis/execute.rb +32 -0
  15. data/lib/qpush/server/apis/fail.rb +39 -0
  16. data/lib/qpush/server/apis/history.rb +36 -0
  17. data/lib/qpush/server/apis/morgue.rb +24 -0
  18. data/lib/qpush/server/apis/perform.rb +24 -0
  19. data/lib/qpush/server/apis/queue.rb +24 -0
  20. data/lib/qpush/server/apis/setup.rb +27 -0
  21. data/lib/qpush/server/apis/success.rb +39 -0
  22. data/lib/qpush/server/delay.rb +5 -5
  23. data/lib/qpush/server/errors.rb +1 -16
  24. data/lib/qpush/server/heartbeat.rb +28 -0
  25. data/lib/qpush/server/jobs.rb +10 -55
  26. data/lib/qpush/server/launcher.rb +5 -5
  27. data/lib/qpush/server/loader.rb +38 -0
  28. data/lib/qpush/server/perform.rb +2 -2
  29. data/lib/qpush/server/queue.rb +2 -2
  30. data/lib/qpush/server/worker.rb +1 -0
  31. data/lib/qpush/version.rb +1 -1
  32. data/lib/qpush/web.rb +10 -1
  33. data/lib/qpush/web/apis/crons.rb +34 -0
  34. data/lib/qpush/web/apis/heart.rb +12 -0
  35. data/lib/qpush/web/apis/history.rb +28 -0
  36. data/lib/qpush/web/apis/jobs.rb +26 -0
  37. data/lib/qpush/web/apis/morgue.rb +30 -0
  38. data/lib/qpush/web/apis/queue_delayed.rb +29 -0
  39. data/lib/qpush/web/apis/queued.rb +0 -0
  40. data/lib/qpush/web/apis/retries.rb +40 -0
  41. data/lib/qpush/web/apis/stats.rb +58 -0
  42. data/lib/qpush/web/get.rb +32 -34
  43. data/lib/qpush/web/post.rb +8 -0
  44. data/lib/qpush/web/server.rb +34 -5
  45. data/qpush.gemspec +1 -0
  46. metadata +40 -3
  47. data/lib/qpush/server/execute.rb +0 -100
@@ -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.2
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-20 00:00:00.000000000 Z
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/execute.rb
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
@@ -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