allq 0.1.3 → 0.1.5
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/Gemfile +2 -5
- data/lib/allq.rb +1 -1
- data/lib/allq/actions/bury.rb +28 -0
- data/lib/allq/actions/clear.rb +28 -0
- data/lib/allq/actions/kick.rb +22 -0
- data/lib/allq/actions/parent_job.rb +32 -0
- data/lib/allq/actions/peek.rb +39 -0
- data/lib/allq/client.rb +46 -7
- data/lib/allq/job.rb +1 -1
- data/lib/allq/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b8559866f94f306c73d4c86db9df0cbed2f9d62
|
4
|
+
data.tar.gz: 83172c958ee6ebc754c633e70dab3cf38541b028
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 301c75daf192b1ea190f3ef063a33b1fb8968c8172166f729b2032c17cafd70b00aa41459696ecaea968c1a74ff2e667fcd353a680b43dfb884b2720c94e8322
|
7
|
+
data.tar.gz: 8f05b5205316930d0e89b01c6336039e530bdb20d54eb33894e0a239ed79910add9473872fb71303692321ceb87e72c020fa40f01020a91afa070610292c0cf9
|
data/Gemfile
CHANGED
data/lib/allq.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
class AllQ
|
2
|
+
class Bury < AllQ::Base
|
3
|
+
|
4
|
+
def snd(data)
|
5
|
+
job_id = data[:job_id]
|
6
|
+
|
7
|
+
send_data = base_send(job_id)
|
8
|
+
response = send_hash_as_json(send_data)
|
9
|
+
result = rcv(response)
|
10
|
+
return result
|
11
|
+
end
|
12
|
+
|
13
|
+
def rcv(data)
|
14
|
+
return nil if data.to_s == '' || data.to_s.strip == '{}'
|
15
|
+
JSON.parse(data)
|
16
|
+
end
|
17
|
+
|
18
|
+
def base_send(job_id)
|
19
|
+
{
|
20
|
+
'action' => 'bury',
|
21
|
+
'params' => {
|
22
|
+
'job_id' => job_id
|
23
|
+
}
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class AllQ
|
2
|
+
class Clear < AllQ::Base
|
3
|
+
|
4
|
+
def snd(data)
|
5
|
+
cache_type = data[:cache_type] || "all"
|
6
|
+
|
7
|
+
send_data = base_send(cache_type)
|
8
|
+
response = send_hash_as_json(send_data)
|
9
|
+
result = rcv(response)
|
10
|
+
rcv(response)
|
11
|
+
end
|
12
|
+
|
13
|
+
def rcv(data)
|
14
|
+
return nil if data.to_s == '' || data.to_s.strip == '{}'
|
15
|
+
JSON.parse(data)
|
16
|
+
end
|
17
|
+
|
18
|
+
def base_send(cache_type)
|
19
|
+
{
|
20
|
+
'action' => 'clear',
|
21
|
+
'params' => {
|
22
|
+
'cache_type' => cache_type
|
23
|
+
}
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class AllQ
|
2
|
+
class Kick < AllQ::Base
|
3
|
+
|
4
|
+
def snd(data)
|
5
|
+
result = nil
|
6
|
+
tube = data[:tube]
|
7
|
+
|
8
|
+
send_data = base_send(tube)
|
9
|
+
response = send_hash_as_json(send_data)
|
10
|
+
rcv(response)
|
11
|
+
end
|
12
|
+
|
13
|
+
def base_send(tube)
|
14
|
+
{
|
15
|
+
'action' => 'kick',
|
16
|
+
'params' => {
|
17
|
+
'tube' => tube
|
18
|
+
}
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class AllQ
|
2
|
+
class ParentJob < AllQ::Base
|
3
|
+
|
4
|
+
def snd(data)
|
5
|
+
result = nil
|
6
|
+
tube = data.delete('tube')
|
7
|
+
body = data.delete('body')
|
8
|
+
|
9
|
+
send_data = base_send(tube, body, data)
|
10
|
+
response = send_hash_as_json(send_data)
|
11
|
+
result = rcv(response)
|
12
|
+
build_job(result)
|
13
|
+
end
|
14
|
+
|
15
|
+
def base_send(tube, body, options = {})
|
16
|
+
raise 'Must have tube name and body' unless tube && body
|
17
|
+
base = {
|
18
|
+
'action' => 'set_parent_job',
|
19
|
+
'params' => {
|
20
|
+
'tube' => tube,
|
21
|
+
'body' => body
|
22
|
+
}
|
23
|
+
}
|
24
|
+
base['params']['limit'] = options['limit'] if options['limit']
|
25
|
+
base['params']['noop'] = options['noop'] if options['noop']
|
26
|
+
base['params']['ttl'] = options['ttl'] if options['ttl']
|
27
|
+
base['params']['delay'] = options['delay'] if options['delay']
|
28
|
+
base['params']['parent_id'] = options['parent_id'] if options['parent_id']
|
29
|
+
return base
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class AllQ
|
2
|
+
class Peek < AllQ::Base
|
3
|
+
|
4
|
+
def snd(data)
|
5
|
+
result = nil
|
6
|
+
tube = data.delete(:tube)
|
7
|
+
buried = data.delete(:buried)
|
8
|
+
|
9
|
+
send_data = base_send(tube, buried)
|
10
|
+
response = send_hash_as_json(send_data)
|
11
|
+
rcv(response)
|
12
|
+
end
|
13
|
+
|
14
|
+
def rcv(data)
|
15
|
+
return nil if data.to_s == '' || data.to_s.strip == '{}'
|
16
|
+
|
17
|
+
result = JSON.parse(data)
|
18
|
+
puts "PEEK result #{result}"
|
19
|
+
if result['job']
|
20
|
+
return nil if result['job'].empty?
|
21
|
+
job = Job.new_from_hash(result['job'])
|
22
|
+
return job
|
23
|
+
end
|
24
|
+
nil
|
25
|
+
end
|
26
|
+
|
27
|
+
def base_send(tube, buried)
|
28
|
+
out = {
|
29
|
+
'action' => 'peek',
|
30
|
+
'params' => {
|
31
|
+
'tube' => tube
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
out['params']['buried'] = 'true' if buried
|
36
|
+
out
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/allq/client.rb
CHANGED
@@ -14,19 +14,61 @@ class AllQ
|
|
14
14
|
@stats_action = AllQ::Stats.new(@connection)
|
15
15
|
@release_action = AllQ::Release.new(@connection)
|
16
16
|
@touch_action = AllQ::Touch.new(@connection)
|
17
|
+
@kick_action = AllQ::Kick.new(@connection)
|
18
|
+
@bury_action = AllQ::Bury.new(@connection)
|
19
|
+
@clear_action = AllQ::Clear.new(@connection)
|
20
|
+
@peek_action = AllQ::Peek.new(@connection)
|
21
|
+
@delete_action = AllQ::Delete.new(@connection)
|
22
|
+
@parent_job_action = AllQ::ParentJob.new(@connection)
|
23
|
+
end
|
24
|
+
|
25
|
+
def parent_job(body, tube, ttl: 3600, delay: 0, parent_id: nil, priority: 5, limit: nil, noop: false)
|
26
|
+
data = {
|
27
|
+
'body' => body,
|
28
|
+
'tube' => tube,
|
29
|
+
'delay' => delay,
|
30
|
+
'ttl' => ttl,
|
31
|
+
'priority' => priority,
|
32
|
+
'parent_id' => parent_id,
|
33
|
+
'limit' => limit,
|
34
|
+
'noop' => noop
|
35
|
+
}
|
36
|
+
@parent_job_action.snd(data)
|
37
|
+
end
|
38
|
+
|
39
|
+
def kick(tube_name)
|
40
|
+
@kick_action.snd(tube: tube_name)
|
41
|
+
end
|
42
|
+
|
43
|
+
def clear(cache_type = "cache_type", value = "all")
|
44
|
+
@clear_action.snd(cache_type: :all)
|
45
|
+
end
|
46
|
+
|
47
|
+
def peek(tube_name)
|
48
|
+
@peek_action.snd(tube: tube_name, buried: false)
|
49
|
+
end
|
50
|
+
|
51
|
+
def peek_buried(tube_name)
|
52
|
+
@peek_action.snd(tube: tube_name, buried: true)
|
53
|
+
end
|
54
|
+
|
55
|
+
def bury(job)
|
56
|
+
raise "Can't 'bury' a Job that is nil. Please check for Nil job before burying." unless job
|
57
|
+
@bury_action.snd(job_id: job.id)
|
17
58
|
end
|
18
59
|
|
19
60
|
def get(tube_name)
|
20
61
|
@get_action.snd(tube_name)
|
21
62
|
end
|
22
63
|
|
23
|
-
def put(body, tube, delay
|
64
|
+
def put(body, tube, ttl: 3600, delay: 0, parent_id: nil, priority: 5)
|
24
65
|
data = {
|
25
66
|
'body' => body,
|
26
67
|
'tube' => tube,
|
27
68
|
'delay' => delay,
|
28
69
|
'ttl' => ttl,
|
29
|
-
'priority' => priority
|
70
|
+
'priority' => priority,
|
71
|
+
'parent_id' => parent_id
|
30
72
|
}
|
31
73
|
@put_action.snd(data)
|
32
74
|
end
|
@@ -37,6 +79,7 @@ class AllQ
|
|
37
79
|
end
|
38
80
|
|
39
81
|
def touch(job)
|
82
|
+
raise "Can't 'touch' a Job that is nil. Please check for Nil job before 'touch'." unless job
|
40
83
|
@touch_action.snd(job_id: job.id)
|
41
84
|
end
|
42
85
|
|
@@ -45,14 +88,10 @@ class AllQ
|
|
45
88
|
end
|
46
89
|
|
47
90
|
def release(job)
|
91
|
+
raise "Can't 'release' a Job that is nil." unless job
|
48
92
|
@release_action.snd(job_id: job.id)
|
49
93
|
end
|
50
94
|
|
51
|
-
def delete(job)
|
52
|
-
end
|
53
|
-
|
54
|
-
def kick(job)
|
55
|
-
end
|
56
95
|
|
57
96
|
end
|
58
97
|
end
|
data/lib/allq/job.rb
CHANGED
data/lib/allq/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: allq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,9 +72,14 @@ files:
|
|
72
72
|
- bin/setup
|
73
73
|
- lib/allq.rb
|
74
74
|
- lib/allq/actions/base.rb
|
75
|
+
- lib/allq/actions/bury.rb
|
76
|
+
- lib/allq/actions/clear.rb
|
75
77
|
- lib/allq/actions/delete.rb
|
76
78
|
- lib/allq/actions/done.rb
|
77
79
|
- lib/allq/actions/get.rb
|
80
|
+
- lib/allq/actions/kick.rb
|
81
|
+
- lib/allq/actions/parent_job.rb
|
82
|
+
- lib/allq/actions/peek.rb
|
78
83
|
- lib/allq/actions/put.rb
|
79
84
|
- lib/allq/actions/release.rb
|
80
85
|
- lib/allq/actions/stats.rb
|