redis_queue 0.1.2 → 0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e3d482340930676569479542795dbb405b03657
4
- data.tar.gz: 3e85d5a06808cac114635c7173443b633861fb5d
3
+ metadata.gz: 068a0a6c1728f9f5f807aa9894d893594587f868
4
+ data.tar.gz: a534194a5007445263ef9a3326b74399ad6a1703
5
5
  SHA512:
6
- metadata.gz: 1cdb29982089b13672c558c74fd2c970197a1551f42b93ae96cbe53a10494186d6c597453fe0e28d5fa041b841e1d7e6212f2beaff1cbc6436f52011b896b298
7
- data.tar.gz: 563dbc1289fd709c0fe5ddb0477a78bed3a3f699d5fdb23b4a7f2046369210a8e05c5c73628c00923bb0c5969c3851915aa1be36de5bceefd9d269005e4478a6
6
+ metadata.gz: 87d378af57edf944f92bce2ec9b49af8728d6273d9e70666b71ae7f97f2054141df19f9fb7d9cc254cc7d6724e0da170b218245e27427ab940dd29d3572295b4
7
+ data.tar.gz: 0884f179db7552beacdd41b5247664516b995c40347c2bedd47cb42779af5764e2d04deb899fc41245089400833c88dda1430f6ba3272f84296334dabb07d416
@@ -1,8 +1,8 @@
1
1
  require 'redis'
2
2
 
3
3
  class RedisConnection
4
- def initialize url
5
- @url = url
4
+ def initialize args
5
+ @args = args
6
6
  end
7
7
 
8
8
  def run
@@ -20,6 +20,6 @@ class RedisConnection
20
20
  end
21
21
 
22
22
  def new_redis
23
- ::Redis.connect(url: @url)
23
+ ::Redis.connect(@args)
24
24
  end
25
25
  end
data/lib/redis_queue.rb CHANGED
@@ -1,23 +1,24 @@
1
1
  require_relative 'redis_connection'
2
2
 
3
3
  class RedisQueue
4
- def initialize id=:messages, url='redis://localhost:6379/0'
5
- @id = id
6
- @redis_connection = RedisConnection.new(url)
4
+ def initialize args={id: :messages, url: 'redis://localhost:6379/0'}
5
+ @id = args.delete(:id)
6
+ @redis = RedisConnection.new(args)
7
+ @redis_blocking = RedisConnection.new(args)
7
8
  end
8
9
 
9
10
  def pop
10
- @redis_connection.run do |redis|
11
+ @redis_blocking.run do |redis|
11
12
  redis.blpop(@id).last.tap { |msg| redis.sadd "#{@id}_in_use", msg }
12
13
  end
13
14
  end
14
15
 
15
16
  def push task
16
- @redis_connection.run { |redis| redis.rpush @id, task }
17
+ @redis.run { |redis| redis.rpush @id, task }
17
18
  end
18
19
 
19
20
  def fail task
20
- @redis_connection.run do |redis|
21
+ @redis.run do |redis|
21
22
  redis.pipelined do
22
23
  redis.sadd "#{@id}_failed", task
23
24
  redis.srem "#{@id}_in_use", task
@@ -26,7 +27,7 @@ class RedisQueue
26
27
  end
27
28
 
28
29
  def done task
29
- @redis_connection.run do |redis|
30
+ @redis.run do |redis|
30
31
  redis.pipelined do
31
32
  redis.sadd "#{@id}_done", task
32
33
  redis.srem "#{@id}_in_use", task
@@ -35,7 +36,7 @@ class RedisQueue
35
36
  end
36
37
 
37
38
  def unpop task
38
- @redis_connection.run do |redis|
39
+ @redis.run do |redis|
39
40
  redis.pipelined do
40
41
  redis.lpush @id, task
41
42
  redis.srem "#{@id}_in_use", task
@@ -45,16 +46,16 @@ class RedisQueue
45
46
 
46
47
  def reset
47
48
  init_from "#{@id}_in_use"
48
- @redis_connection.run { |redis| redis.del "#{@id}_in_use" }
49
+ @redis.run { |redis| redis.del "#{@id}_in_use" }
49
50
  end
50
51
 
51
52
  def restart
52
53
  init_from "#{@id}_done"
53
- @redis_connection.run { |redis| redis.del "#{@id}_done" }
54
+ @redis.run { |redis| redis.del "#{@id}_done" }
54
55
  end
55
56
 
56
57
  def init_from set
57
- @redis_connection.run do |redis|
58
+ @redis.run do |redis|
58
59
  redis.eval "local vals = redis.call('smembers', '#{set}')
59
60
  for i = 1, table.getn(vals) do
60
61
  redis.call('rpush', '#{@id}', vals[i])
@@ -63,35 +64,35 @@ class RedisQueue
63
64
  end
64
65
 
65
66
  def size
66
- @redis_connection.run { |redis| redis.llen @id }.to_i
67
+ @redis.run { |redis| redis.llen @id }.to_i
67
68
  end
68
69
 
69
70
  def done_size
70
- @redis_connection.run { |redis| redis.scard "#{@id}_done" }.to_i
71
+ @redis.run { |redis| redis.scard "#{@id}_done" }.to_i
71
72
  end
72
73
 
73
74
  def failed_size
74
- @redis_connection.run { |redis| redis.scard "#{@id}_failed" }.to_i
75
+ @redis.run { |redis| redis.scard "#{@id}_failed" }.to_i
75
76
  end
76
77
 
77
78
  def in_use_size
78
- @redis_connection.run { |redis| redis.scard "#{@id}_in_use" }.to_i
79
+ @redis.run { |redis| redis.scard "#{@id}_in_use" }.to_i
79
80
  end
80
81
 
81
82
  def list
82
- @redis_connection.run { |redis| redis.lrange @id, 0, -1 }
83
+ @redis.run { |redis| redis.lrange @id, 0, -1 }
83
84
  end
84
85
 
85
86
  def done_list
86
- @redis_connection.run { |redis| redis.smembers "#{@id}_done" }
87
+ @redis.run { |redis| redis.smembers "#{@id}_done" }
87
88
  end
88
89
 
89
90
  def failed_list
90
- @redis_connection.run { |redis| redis.smembers "#{@id}_failed" }
91
+ @redis.run { |redis| redis.smembers "#{@id}_failed" }
91
92
  end
92
93
 
93
94
  def in_use_list
94
- @redis_connection.run { |redis| redis.smembers "#{@id}_in_use" }
95
+ @redis.run { |redis| redis.smembers "#{@id}_in_use" }
95
96
  end
96
97
 
97
98
  def print_stats
@@ -109,7 +110,7 @@ class RedisQueue
109
110
  end
110
111
 
111
112
  def clear
112
- @redis_connection.run do |redis|
113
+ @redis.run do |redis|
113
114
  redis.del @id
114
115
  redis.del "#{@id}_in_use"
115
116
  redis.del "#{@id}_done"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis_queue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: '0.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jose Ignacio Fernandez