【发布时间】:2020-09-18 21:36:03
【问题描述】:
我有一些简单的 python 代码等待某个主题的消息。
但是...当运行它时,python 进程会占用 CPU。我知道使用其他语言,例如使用套接字,有一种方法可以在不消耗整个处理能力的情况下等待消息。本质上,线程只是保持停止等待响应。 ZeroMQ 有可能吗?
import zmq
import sys
port = "5556"
if len(sys.argv) > 1:
port = sys.argv[1]
int(port)
# Socket to talk to server
context = zmq.Context()
socket = context.socket(zmq.SUB)
print "Collecting updates from weather server..."
socket.connect ("tcp://localhost:%s" % port)
# Subscribe to zipcode, default is NYC, 10001
topicfilter = "10001"
socket.setsockopt(zmq.SUBSCRIBE, topicfilter)
# Process 5 updates
total_value = 0
for update_nbr in range (5):
string = socket.recv()
topic, messagedata = string.split()
total_value += int(messagedata)
print ('{} {}'.format(topic, message)
【问题讨论】: