kue_ruby 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/kue_ruby.rb +23 -21
- data/lib/kue_ruby/version.rb +1 -1
- metadata +2 -3
- data/dump.rdb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a7ef81e78f3103b8b2e89756641fe6b0ef8e194
|
4
|
+
data.tar.gz: 97cca0f205ab8efae8e1bb02df07db5846e09be5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a153d3f1dbdadc972e2bdb93a42f3f2040eae9bc93a628abb9f7edcc1d0d5c8bfe4c5d660a8b032fff57ce227dfe173c5f8293747a462fdb153331c6009d720
|
7
|
+
data.tar.gz: 3f787785064b73b3c7294adbc4d36058b1af5e9967df40f96fac307ff3d9910d2f36874e69dd4d1a5d518a554cc7ce3aa8979bfee9897643a302e102727c1dec
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -8,7 +8,7 @@ kue = KueRuby.new(redis: Redis.new)
|
|
8
8
|
job = kue.create_job(type: 'foobar', data: { foo: 2 })
|
9
9
|
jobp = kue.create_job(type: 'foobaz', data: { foo: 2 }, priority: -1, max_attempts: 3)
|
10
10
|
job.max_attempts = 5
|
11
|
-
job = job.save kue
|
11
|
+
job = job.save kue
|
12
12
|
```
|
13
13
|
|
14
14
|
Right now, this gem only supports creating jobs in Kue. Feel free to contribute with more!
|
data/lib/kue_ruby.rb
CHANGED
@@ -4,16 +4,18 @@ require 'redis'
|
|
4
4
|
|
5
5
|
# Interface with the Automattic Kue redis store
|
6
6
|
class KueRuby
|
7
|
-
attr_reader :redis
|
7
|
+
attr_reader :redis, :prefix
|
8
8
|
|
9
9
|
# Create a new client instance
|
10
10
|
#
|
11
11
|
# @param Hash options
|
12
12
|
# @option options Redis :redis an instance of `redis`
|
13
|
+
# @option options [String] :prefix namespace in redis (default is q)
|
13
14
|
#
|
14
15
|
# @return [KueRuby] a new kue client instance
|
15
16
|
def initialize(options = {})
|
16
17
|
@redis = options[:redis]
|
18
|
+
@prefix = options[:prefix] ? options[:prefix] : 'q'
|
17
19
|
super()
|
18
20
|
end
|
19
21
|
|
@@ -52,14 +54,14 @@ class KueRuby
|
|
52
54
|
job.state = 'inactive'
|
53
55
|
job.created_at = Time.now
|
54
56
|
job.backoff = { delay: 60 * 1000, type: 'exponential' }
|
55
|
-
job.id = @redis.incr
|
57
|
+
job.id = @redis.incr "#{@prefix}.ids"
|
56
58
|
job.zid = create_fifo job.id
|
57
|
-
@redis.sadd
|
58
|
-
job.save
|
59
|
-
@redis.zadd(
|
60
|
-
@redis.zadd(
|
61
|
-
@redis.zadd("
|
62
|
-
@redis.lpush("
|
59
|
+
@redis.sadd "#{@prefix}:job:types", job.type
|
60
|
+
job.save self
|
61
|
+
@redis.zadd("#{@prefix}:jobs", job.priority, job.zid)
|
62
|
+
@redis.zadd("#{@prefix}:jobs:inactive", job.priority, job.zid)
|
63
|
+
@redis.zadd("#{@prefix}:jobs:#{job.type}:inactive", job.priority, job.zid)
|
64
|
+
@redis.lpush("#{@prefix}:#{job.type}:jobs", 1)
|
63
65
|
job
|
64
66
|
end
|
65
67
|
|
@@ -76,21 +78,21 @@ class KueRuby
|
|
76
78
|
|
77
79
|
# Save job data to redis kue
|
78
80
|
#
|
79
|
-
# @param
|
81
|
+
# @param KueRuby KueRuby instance with redis connection
|
80
82
|
#
|
81
83
|
# @return [KueJob]
|
82
|
-
def save(
|
83
|
-
redis.hmset(
|
84
|
-
"
|
85
|
-
'max_attempts',
|
86
|
-
'backoff',
|
87
|
-
'type',
|
88
|
-
'created_at',
|
89
|
-
'updated_at',
|
90
|
-
'promote_at',
|
91
|
-
'priority',
|
92
|
-
'data',
|
93
|
-
'state',
|
84
|
+
def save(kue)
|
85
|
+
kue.redis.hmset(
|
86
|
+
"#{kue.prefix}:job:#{id}",
|
87
|
+
'max_attempts', max_attempts.to_i,
|
88
|
+
'backoff', backoff.to_json,
|
89
|
+
'type', type,
|
90
|
+
'created_at', (created_at.to_f * 1000).to_i,
|
91
|
+
'updated_at', (Time.now.to_f * 1000).to_i,
|
92
|
+
'promote_at', (Time.now.to_f * 1000).to_i + delay,
|
93
|
+
'priority', priority.to_i,
|
94
|
+
'data', data.to_json,
|
95
|
+
'state', state
|
94
96
|
)
|
95
97
|
self
|
96
98
|
end
|
data/lib/kue_ruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kue_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Beckman
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -99,7 +99,6 @@ files:
|
|
99
99
|
- Rakefile
|
100
100
|
- bin/console
|
101
101
|
- bin/setup
|
102
|
-
- dump.rdb
|
103
102
|
- kue_ruby.gemspec
|
104
103
|
- lib/kue_ruby.rb
|
105
104
|
- lib/kue_ruby/version.rb
|
data/dump.rdb
DELETED
Binary file
|