【问题标题】:Why do almost all ZeroMQ code samples contain sleep() operations?为什么几乎所有 ZeroMQ 代码示例都包含 sleep() 操作?
【发布时间】:2018-11-22 01:47:58
【问题描述】:

我正在学习 ZeroMQ 并尝试在 Python 中构建一个简单的消息队列。

我注意到基本上所有代码示例都包含某种sleep() 操作。

即使是 ZeroMQ 指南中的 hello world 示例,注释 "Do some work"

我觉得这有点不清楚,是模拟处理消息的行为的动机吗?为什么需要这样做?

import time
import zmq

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")

while True:
    #  Wait for next request from client
    message = socket.recv()
    print("Received request: %s" % message)

    #  Do some 'work'
    time.sleep(1)

    #  Send reply back to client
    socket.send(b"World")

【问题讨论】:

  • 您可以从此代码中删除 sleep 语句。您需要注意的唯一问题是“慢加入者”问题,但我认为这不会影响回复/请求

标签: zeromq distributed-computing


【解决方案1】:

是模拟处理消息的行为的动机吗?

是的。启动 while True: “没有”任何 handbrake 很快就会在屏幕上变得非常丑陋,print()-s 的河流实际上是无穷无尽的,不会吧?

为什么有必要这样做?

只是一个便宜的 SLOC / 便利技巧。除了需要注入一些延迟的情况外,sleep()-s

没有技术原因

【讨论】:

    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多