【问题标题】:Asynchronous CLI output异步 CLI 输出
【发布时间】:2012-08-09 21:01:59
【问题描述】:

所以我正在编写这个基于 python RabbitMQ 的工具,使用 cmd 作为 CLI 接口,它通过向各个服务器上的客户端发送消息并返回带有数据集的消息来查询远程数据库(一些查询可能需要很长时间,并且需要异步)。

语法示例如下:

CLI> get host=myhost.com fact=cpunumber

此命令将创建一条消息给 X 客户端以获取数据。

现在,我正在努力使用一种方法来显示查询结果,以使输出不会混乱。响应数据集消息到达后立即显示结果似乎是一种糟糕的 UEX 方法。

有人实现了类似的东西并愿意分享方法吗?

我知道这不是一个非常具体的问题,但也许会有一些指向可以在这种情况下使用的文本模式格式化库的指针。

谢谢。

【问题讨论】:

    标签: python asynchronous cmd rabbitmq


    【解决方案1】:

    由于这个问题没有“好的答案”,我就分享一下我对这个问题的看法。

    我不确定为什么您会觉得数据一到就打印是一种糟糕的设计 - 即时性令人放心,因为它让您知道某些东西正在工作。

    另一方面,如果输出看起来很乱,您可能需要引入一些顺序。众所周知,使用一些明显的标准排序的数据更清晰。更重要的是——即使是伪造的数据,在排序后看起来也更正确。 ;)

    使用您的示例,我会尝试按主机名或给定事实的值对其进行排序(在您的情况下更有意义)。如果您知道数据点将是什么(例如,您查询已知主机的列表),那么您可以在输出记录到达时对其进行排序并打印已知完整/连贯的部分。

    希望这会有所帮助。

    【讨论】:

    • 好吧,让我解释一下为什么我认为立即打印不是一个很好的选择。想象一下,我查询有关许多服务器的硬件事实列表。每个查询都会返回,比如 16 行。它来自 4 个不同的队列。当用户阅读第一个结果时,会随机弹出另一个结果并改变他正在查看的内容。你不觉得这很烦人吗? :)
    猜你喜欢
    • 2011-12-07
    • 2011-11-26
    • 2015-01-06
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多