擅长:python、mysql、java
<p>另一个是费米的答案,我想肯定行得通。使用Redis可能会给您带来更多的灵活性,而使用gevent的greenlet可能会使这种方法更加“在框架中”,因为您已经在使用geventsocketio:D</p>
<pre><code>REDIS_HOST = getattr(settings, 'REDIS_HOST', '127.0.0.1')
class YourNamespace(BaseNamespace):
def _listener(self, channel_label_you_later_call_in_post_save):
pubsub = redis.StrictRedis(REDIS_HOST).pubsub()
pubsub.subscribe(chan)
while True:
for i in pubsub.listen():
self.send({'message_data': i}, json=True)
def recv_message(self, message):
if is_message_to_subscribe(message):
self.spawn(self.listener, get_your_channel_label(message))
</code></pre>
<p>在你的储蓄后,你可以</p>
^{pr2}$