qpush 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +26 -0
- data/README.md +1 -1
- data/lib/qpush/server/jobs.rb +8 -6
- data/lib/qpush/version.rb +1 -1
- data/lib/qpush/web.rb +5 -1
- data/lib/qpush/web/apis/crons.rb +1 -1
- data/lib/qpush/web/apis/heart.rb +2 -2
- data/lib/qpush/web/apis/history.rb +1 -1
- data/lib/qpush/web/apis/jobs.rb +1 -1
- data/lib/qpush/web/apis/morgue.rb +1 -1
- data/lib/qpush/web/apis/queue_delayed.rb +2 -2
- data/lib/qpush/web/apis/retries.rb +1 -1
- data/lib/qpush/web/apis/stats.rb +2 -2
- data/lib/qpush/web/config.rb +4 -0
- data/lib/qpush/web/redis.rb +32 -0
- data/lib/qpush/web/server.rb +5 -5
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4dd90aa194184f401041a0aacdd7f9a2d63615b2
|
4
|
+
data.tar.gz: e4215be59cbe6de524c3b29f9afed23be68c70a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30432e4910a60a4d82acfec8ba806ba8b1671ac9de0bdad3feff9fb573e87417a90182f51325c1994befb35f6bf709b179e6b2d4ee846088d2c285c8c6238180
|
7
|
+
data.tar.gz: 19de3dfc8b141ce765894b0614994a5db361b268d566e96696373f6223a4e9590a53bcbddea94e04109ec03328f6319e62e4a69461416d1485df3e35c54156da
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
engines:
|
2
|
+
rubocop:
|
3
|
+
enabled: true
|
4
|
+
checks:
|
5
|
+
Rubocop/Metrics/ClassLength:
|
6
|
+
enabled: false
|
7
|
+
golint:
|
8
|
+
enabled: true
|
9
|
+
eslint:
|
10
|
+
enabled: true
|
11
|
+
csslint:
|
12
|
+
enabled: true
|
13
|
+
duplication:
|
14
|
+
enabled: true
|
15
|
+
config:
|
16
|
+
languages:
|
17
|
+
- ruby
|
18
|
+
#mass_threshold: 30
|
19
|
+
ratings:
|
20
|
+
paths:
|
21
|
+
- lib/**
|
22
|
+
- "**.rb"
|
23
|
+
exclude_paths:
|
24
|
+
- lib/qpush/web/public/**/*
|
25
|
+
- lib/qpush/server/queue.rb
|
26
|
+
- test/**/*
|
data/README.md
CHANGED
data/lib/qpush/server/jobs.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
module QPush
|
2
2
|
module Server
|
3
3
|
module JobRegister
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
class << self
|
5
|
+
def included(base)
|
6
|
+
_register_job(base)
|
7
|
+
end
|
8
|
+
|
9
|
+
def _register_job(base)
|
10
|
+
Server.redis { |c| c.sadd(QPush::Base::KEY + ':jobs', base.name) }
|
11
|
+
end
|
10
12
|
end
|
11
13
|
end
|
12
14
|
|
data/lib/qpush/version.rb
CHANGED
data/lib/qpush/web.rb
CHANGED
data/lib/qpush/web/apis/crons.rb
CHANGED
data/lib/qpush/web/apis/heart.rb
CHANGED
@@ -3,8 +3,8 @@ module QPush
|
|
3
3
|
module Apis
|
4
4
|
class Heart
|
5
5
|
def call
|
6
|
-
heart = Web.redis { |c| c.get(
|
7
|
-
{ status: !heart.nil?, namespace:
|
6
|
+
heart = Web.redis { |c| c.get(Web.keys.heart) }
|
7
|
+
{ status: !heart.nil?, namespace: 'default' }
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
data/lib/qpush/web/apis/jobs.rb
CHANGED
@@ -17,13 +17,13 @@ module QPush
|
|
17
17
|
private
|
18
18
|
|
19
19
|
def retrieve_delay
|
20
|
-
delays = @conn.zrangebyscore(
|
20
|
+
delays = @conn.zrangebyscore(Web.keys.delay, @score, @score)
|
21
21
|
delays.each
|
22
22
|
|
23
23
|
# Performs a watch on our delay list
|
24
24
|
#
|
25
25
|
def watch_delay
|
26
|
-
@conn.watch(
|
26
|
+
@conn.watch(Web.keys.delay) do
|
27
27
|
yield if block_given?
|
28
28
|
end
|
29
29
|
end
|
data/lib/qpush/web/apis/stats.rb
CHANGED
@@ -29,7 +29,7 @@ module QPush
|
|
29
29
|
|
30
30
|
def retrieve_stats
|
31
31
|
@stats = Web.redis do |conn|
|
32
|
-
conn.hgetall(
|
32
|
+
conn.hgetall(Web.keys.stats)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -49,7 +49,7 @@ module QPush
|
|
49
49
|
|
50
50
|
def calculate_current
|
51
51
|
Web.redis do |c|
|
52
|
-
|
52
|
+
Web.keys.perform_list.collect { |list| c.llen(list) }.reduce(:+)
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
data/lib/qpush/web/config.rb
CHANGED
data/lib/qpush/web/redis.rb
CHANGED
@@ -12,5 +12,37 @@ module QPush
|
|
12
12
|
Web.config.redis_url)
|
13
13
|
end
|
14
14
|
end
|
15
|
+
|
16
|
+
class RedisKeys
|
17
|
+
KEYS = [:delay,
|
18
|
+
:queue,
|
19
|
+
:perform,
|
20
|
+
:stats,
|
21
|
+
:heart,
|
22
|
+
:crons,
|
23
|
+
:history,
|
24
|
+
:morgue]
|
25
|
+
|
26
|
+
attr_reader :delay, :queue, :perform, :stats, :heart,
|
27
|
+
:crons, :history, :morgue
|
28
|
+
|
29
|
+
def initialize(options = {})
|
30
|
+
@namespace = options[:namespace] || 'default'
|
31
|
+
@priorities = options[:priorities] || 5
|
32
|
+
build_keyspaces
|
33
|
+
end
|
34
|
+
|
35
|
+
def perform_list
|
36
|
+
@perform_list ||= (1..@priorities).collect { |num| "#{perform}:#{num}" }
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def build_keyspaces
|
42
|
+
KEYS.each do |key|
|
43
|
+
instance_variable_set("@#{key}", "#{QPush::Base::KEY}:#{@namespace}:#{key}")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
15
47
|
end
|
16
48
|
end
|
data/lib/qpush/web/server.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
module QPush
|
2
2
|
module Web
|
3
3
|
class Server < Sinatra::Base
|
4
|
-
|
4
|
+
set :public_folder, File.expand_path(File.dirname(__FILE__)) + '/public'
|
5
5
|
|
6
6
|
before do
|
7
|
-
|
7
|
+
pass if request.path_info == '/'
|
8
8
|
content_type :json
|
9
9
|
headers 'Access-Control-Allow-Origin' => '*',
|
10
10
|
'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST']
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
get '/' do
|
14
|
+
File.read(File.join(settings.public_folder, 'index.html'))
|
15
|
+
end
|
16
16
|
|
17
17
|
get '/stats' do
|
18
18
|
Get.stats
|
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.7
|
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-08-
|
11
|
+
date: 2016-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -188,6 +188,7 @@ extensions: []
|
|
188
188
|
extra_rdoc_files: []
|
189
189
|
files:
|
190
190
|
- ".byebug_history"
|
191
|
+
- ".codeclimate.yml"
|
191
192
|
- ".gitignore"
|
192
193
|
- ".travis.yml"
|
193
194
|
- CODE_OF_CONDUCT.md
|