Skip to content

Commit d18df5e

Browse files
author
Matt George
committed
upgraded pyres to use the 1.34.1 version of
redis-py This allows us to support higher versions of redis which means we can start start using commands such as blocking pops.
1 parent 16ba89a commit d18df5e

File tree

7 files changed

+26
-29
lines changed

7 files changed

+26
-29
lines changed

pyres/__init__.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
from redis import Redis
44
import pyres.json_parser as json
55

6-
import types
7-
86
def my_import(name):
97
mod = __import__(name)
108
components = name.split('.')
@@ -60,18 +58,18 @@ class ResQ(object):
6058
def __init__(self, server="localhost:6379", password=None,
6159
timeout=None, retry_connection=True):
6260
self.timeout = timeout
63-
self.retry_connection = retry_connection
61+
#self.retry_connection = retry_connection
6462
self.redis = server
6563
if password:
6664
self.redis.auth(password)
6765
self._watched_queues = set()
6866

6967
def push(self, queue, item):
7068
self.watch_queue(queue)
71-
self.redis.push("resque:queue:%s" % queue, ResQ.encode(item))
69+
self.redis.rpush("resque:queue:%s" % queue, ResQ.encode(item))
7270

7371
def pop(self, queue):
74-
ret = self.redis.pop("resque:queue:%s" % queue)
72+
ret = self.redis.lpop("resque:queue:%s" % queue)
7573
if ret:
7674
return ResQ.decode(ret)
7775
return ret
@@ -103,9 +101,7 @@ def _set_redis(self, server):
103101
if isinstance(server, basestring):
104102
self.dsn = server
105103
host, port = server.split(':')
106-
self._redis = Redis(host=host, port=int(port),
107-
retry_connection=self.retry_connection,
108-
timeout=self.timeout)
104+
self._redis = Redis(host=host, port=int(port))
109105
elif isinstance(server, Redis):
110106
self.dsn = '%s:%s' % (server.host,server.port)
111107
self._redis = server

pyres/failure/redis.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def save(self, resq=None):
1515
if self._worker:
1616
data['worker'] = self._worker
1717
data = ResQ.encode(data)
18-
resq.redis.push('resque:failed', data)
18+
resq.redis.rpush('resque:failed', data)
1919

2020
@classmethod
2121
def count(cls, resq):

pyres/worker.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ def all(cls, host="localhost:6379"):
212212
resq = ResQ(host)
213213
elif isinstance(host, ResQ):
214214
resq = host
215-
return [Worker.find(w,resq) for w in resq.redis.smembers('resque:workers')]
215+
216+
return [Worker.find(w,resq) for w in resq.redis.smembers('resque:workers') or []]
216217

217218
@classmethod
218219
def working(cls, host):

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
simplejson==2.0.9
22
itty==0.6.2
3-
redis==0.6.0
3+
redis==1.34.1
44
pystache==0.1.0

tests/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ class PyResTests(unittest.TestCase):
5151
def setUp(self):
5252
self.resq = ResQ()
5353
self.redis = self.resq.redis
54-
self.redis.flush(True)
54+
self.redis.flushall()
5555

5656
def tearDown(self):
57-
self.redis.flush(True)
57+
self.redis.flushall()
5858
del self.redis
5959
del self.resq

tests/test_stats.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@ class StatTests(PyResTests):
44
def test_incr(self):
55
stat_obj = Stat('test_stat', self.resq)
66
stat_obj.incr()
7-
assert self.redis.get('resque:stat:test_stat') == 1
7+
assert self.redis.get('resque:stat:test_stat') == str(1)
88
stat_obj.incr()
9-
assert self.redis.get('resque:stat:test_stat') == 2
9+
assert self.redis.get('resque:stat:test_stat') == str(2)
1010
stat_obj.incr(2)
11-
assert self.redis.get('resque:stat:test_stat') == 4
11+
assert self.redis.get('resque:stat:test_stat') == str(4)
1212

1313
def test_decr(self):
1414
stat_obj = Stat('test_stat', self.resq)
1515
stat_obj.incr()
1616
stat_obj.incr()
17-
assert self.redis.get('resque:stat:test_stat') == 2
17+
assert self.redis.get('resque:stat:test_stat') == str(2)
1818
stat_obj.decr()
19-
assert self.redis.get('resque:stat:test_stat') == 1
19+
assert self.redis.get('resque:stat:test_stat') == str(1)
2020
stat_obj.incr()
2121
stat_obj.decr(2)
22-
assert self.redis.get('resque:stat:test_stat') == 0
22+
assert self.redis.get('resque:stat:test_stat') == str(0)
2323

2424
def test_get(self):
2525
stat_obj = Stat('test_stat', self.resq)

tests/test_worker.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,23 @@ def test_processed(self):
4848
worker.processed()
4949
assert self.redis.exists("resque:stat:processed")
5050
assert self.redis.exists("resque:stat:processed:%s" % name)
51-
assert self.redis.get("resque:stat:processed") == 1
52-
assert self.redis.get("resque:stat:processed:%s" % name) == 1
51+
assert self.redis.get("resque:stat:processed") == str(1)
52+
assert self.redis.get("resque:stat:processed:%s" % name) == str(1)
5353
worker.processed()
54-
assert self.redis.get("resque:stat:processed") == 2
55-
assert self.redis.get("resque:stat:processed:%s" % name) == 2
54+
assert self.redis.get("resque:stat:processed") == str(2)
55+
assert self.redis.get("resque:stat:processed:%s" % name) == str(2)
5656

5757
def test_failed(self):
5858
name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic')
5959
worker = Worker(['basic'])
6060
worker.failed()
6161
assert self.redis.exists("resque:stat:failed")
6262
assert self.redis.exists("resque:stat:failed:%s" % name)
63-
assert self.redis.get("resque:stat:failed") == 1
64-
assert self.redis.get("resque:stat:failed:%s" % name) == 1
63+
assert self.redis.get("resque:stat:failed") == str(1)
64+
assert self.redis.get("resque:stat:failed:%s" % name) == str(1)
6565
worker.failed()
66-
assert self.redis.get("resque:stat:failed") == 2
67-
assert self.redis.get("resque:stat:failed:%s" % name) == 2
66+
assert self.redis.get("resque:stat:failed") == str(2)
67+
assert self.redis.get("resque:stat:failed:%s" % name) == str(2)
6868

6969
def test_process(self):
7070
name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic')
@@ -102,8 +102,8 @@ def test_job_failure(self):
102102
worker.process()
103103
name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic')
104104
assert not self.redis.get('resque:worker:%s' % worker)
105-
assert self.redis.get("resque:stat:failed") == 1
106-
assert self.redis.get("resque:stat:failed:%s" % name) == 1
105+
assert self.redis.get("resque:stat:failed") == str(1)
106+
assert self.redis.get("resque:stat:failed:%s" % name) == str(1)
107107

108108
def test_get_job(self):
109109
worker = Worker(['basic'])

0 commit comments

Comments
 (0)