Skip to content

Commit 6ba131a

Browse files
Warn when message queues are used without monkey patching
1 parent d09627f commit 6ba131a

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

socketio/kombu_manager.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,20 @@ def __init__(self, url='amqp://guest:guest@localhost:5672//',
4747
self.url = url
4848
self.producer = self._producer()
4949

50+
def initialize(self, server):
51+
super(KombuManager, self).initialize(server)
52+
53+
monkey_patched = True
54+
if server.async_mode == 'eventlet':
55+
from eventlet.patcher import is_monkey_patched
56+
monkey_patched = is_monkey_patched('socket')
57+
elif 'gevent' in server.async_mode:
58+
from gevent.monkey import is_module_patched
59+
monkey_patched = is_module_patched('socket')
60+
if not monkey_patched:
61+
raise RuntimeError('Redis requires a monkey patched socket '
62+
'library to work with ' + server.async_mode)
63+
5064
def _connection(self):
5165
return kombu.Connection(self.url)
5266

socketio/redis_manager.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,20 @@ def __init__(self, url='redis://localhost:6379/0', channel='socketio',
4343
super(RedisManager, self).__init__(channel=channel,
4444
write_only=write_only)
4545

46+
def initialize(self, server):
47+
super(RedisManager, self).initialize(server)
48+
49+
monkey_patched = True
50+
if server.async_mode == 'eventlet':
51+
from eventlet.patcher import is_monkey_patched
52+
monkey_patched = is_monkey_patched('socket')
53+
elif 'gevent' in server.async_mode:
54+
from gevent.monkey import is_module_patched
55+
monkey_patched = is_module_patched('socket')
56+
if not monkey_patched:
57+
raise RuntimeError('Redis requires a monkey patched socket '
58+
'library to work with ' + server.async_mode)
59+
4660
def _publish(self, data):
4761
return self.redis.publish(self.channel, pickle.dumps(data))
4862

0 commit comments

Comments
 (0)