<p>如果不在客户机上实现某种类型的池<strong>redis GET</strong>,就不可能完成您要做的事情。在这种情况下,你的客户必须做如下事情:</p>
<pre><code>async def _fetch(key):
val = self.redis_connection.get(key)
while val is None:
# Sleep and retry here
asyncio.sleep(1)
val = self.redis_connection.get(key)
return val
</code></pre>
<p>不过,我会要求你彻底地重新考虑你在这个问题上使用的模式。
在我看来,你需要做的是像Pub/Sub<a href="https://redis.io/topics/pubsub" rel="nofollow noreferrer">https://redis.io/topics/pubsub</a>这样的事情。在</p>
<p>因此,执行<strong>设置</strong>的应用程序成为发布者,而执行<strong>获取</strong>并等待密钥可用的应用程序成为订阅服务器。在</p>
<p>我对此做了一些研究,看起来你可以用asyncio\u redis来做:</p>
<ul>
<li><p>订户<a href="https://github.com/jonathanslenders/asyncio-redis/blob/b20d4050ca96338a129b30370cfaa22cc7ce3886/examples/pubsub/receiver.py" rel="nofollow noreferrer">https://github.com/jonathanslenders/asyncio-redis/blob/b20d4050ca96338a129b30370cfaa22cc7ce3886/examples/pubsub/receiver.py</a>。</p></li>
<li><p>发件人(发布者):<a href="https://github.com/jonathanslenders/asyncio-redis/blob/b20d4050ca96338a129b30370cfaa22cc7ce3886/examples/pubsub/sender.py" rel="nofollow noreferrer">https://github.com/jonathanslenders/asyncio-redis/blob/b20d4050ca96338a129b30370cfaa22cc7ce3886/examples/pubsub/sender.py</a></p></li>
</ul>
<p>希望这有帮助。在</p>