我正在尝试等待来自路由内的 ZMQ 消息响应,但收到以下错误。
RuntimeError: Task got bad yield: <zmq.eventloop.future._TornadoFuture object at 0x7f74f4143c88>
以下代码在我们针对该框架编码的 API 的早期版本上与 ApiStar 一起使用,但我们已决定现在转移到 Starlette。下面的代码包含在一个async def
函数中。
import zmq
from zmq.eventloop.future import Context
import threading
zmq_context = zmq.eventloop.future.Context()
mysocket = zmq_context.socket(zmq.SUB)
mysocket.connect(f"tcp://{DB_HOST}:{DEFAULT_ZMQ_PORT}")
topicstring = 'niOSGOV6eAyUKOOVdXm0CA=='
topicfilter=bytes(topicstring, 'utf-8').decode()
mysocket.setsockopt_string(zmq.SUBSCRIBE, topicfilter)
all_responses = await mysocket.recv_multipart(flags=0, copy=True, track=False)
感谢您的任何帮助!