Skip to content

Commit 6abdf05

Browse files
committed
create_connection_timeout and settings repr
1 parent 19f0a88 commit 6abdf05

File tree

5 files changed

+16
-6
lines changed

5 files changed

+16
-6
lines changed

HISTORY.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
History
44
-------
55

6+
v0.10.4 (2017-08-22)
7+
....................
8+
* ``RedisSettings`` repr method
9+
* add ``create_connection_timeout`` to connection pool
10+
611
v0.10.3 (2017-08-19)
712
....................
813
* fix bug with ``RedisMixin.get_redis_pool`` creating multiple queues

arq/utils.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
import aioredis
1515
from aioredis.pool import RedisPool
16-
from async_timeout import timeout
1716

1817
__all__ = ['RedisSettings', 'RedisMixin', 'next_cron']
1918
logger = logging.getLogger('arq.utils')
@@ -47,6 +46,9 @@ def __init__(self,
4746
self.conn_retries = conn_retries
4847
self.conn_retry_delay = conn_retry_delay
4948

49+
def __repr__(self):
50+
return '<RedisSettings {}>'.format(' '.join(f'{s}={getattr(self, s)}' for s in self.__slots__))
51+
5052

5153
class RedisMixin:
5254
"""
@@ -74,9 +76,10 @@ async def create_redis_pool(self, *, _retry=0) -> RedisPool:
7476
"""
7577
addr = self.redis_settings.host, self.redis_settings.port
7678
try:
77-
with timeout(self.redis_settings.conn_timeout):
78-
pool = await aioredis.create_pool(addr, loop=self.loop, db=self.redis_settings.database,
79-
password=self.redis_settings.password)
79+
pool = await aioredis.create_pool(
80+
addr, loop=self.loop, db=self.redis_settings.database, password=self.redis_settings.password,
81+
create_connection_timeout=self.redis_settings.conn_timeout
82+
)
8083
except (ConnectionError, OSError, aioredis.RedisError, asyncio.TimeoutError) as e:
8184
if _retry < self.redis_settings.conn_retries:
8285
logger.warning('redis connection error %s %s, %d retries remaining...',

arq/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
__all__ = ['VERSION']
44

5-
VERSION = StrictVersion('0.10.3')
5+
VERSION = StrictVersion('0.10.4')

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
""",
4949
install_requires=[
5050
'async-timeout>=1.2.1',
51-
'aioredis>=0.3.1',
51+
'aioredis>=0.3.3',
5252
'click>=6.7',
5353
'msgpack-python>=0.4.8',
5454
],

tests/test_utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
def test_settings_changed():
1616
settings = RedisSettings(port=123)
1717
assert settings.port == 123
18+
assert ('<RedisSettings host=localhost port=123 database=0 password=None conn_retries=5 '
19+
'conn_timeout=1 conn_retry_delay=1>') == str(settings)
1820

1921

2022
@pytest.mark.skipif(os.getenv('TZ') is None, reason='TZ=Asia/Singapore must be set')

0 commit comments

Comments
 (0)