gpt4 book ai didi

python,twistedmatrix ...通过套接字记录

转载 作者:太空狗 更新时间:2023-10-30 00:03:16 26 4
gpt4 key购买 nike

我需要一些帮助来评估什么是扭曲矩阵应用程序的正确设计。或任何有助于这样做的网址。

  • 背景:我现在通过使用 FileLogObserver 和自定义 DailyLogFile 使用 twistedmatrix 中包含的日志记录功能来传播数据并将数据保存到文件系统以供以后分析。<

现在,我将使用许多不同的应用程序,这些应用程序将完成它们的工作并在许多文件扭曲日志(不同文件)中将日志消息作为定时事件发送。因此我的事件由 (timestamp, data)

组成

我需要一些方法来实时读取每条记录的消息(时间戳,数据),并集中将它们分组的事件时间基础,即对具有完全相同时间戳的所有事件进行一些计算和分组。

我认为我可以使用扭曲的日志功能来做到这一点是否正确?

您将如何以简单的方式设计它?

我目前的想法是构建一个套接字扭曲记录器并复制记录过程,以便每个事件都将发送到文件记录器(我需要分离的历史记录),但也通过套接字发送到接收器(我现在还需要实时) .如果我以这种方式挖掘是对的,那么有人有这种扭曲的套接字记录器的骨架吗?我如何从扭曲中链接两个记录器?

对于另一部分,正确的记录器接收器应该是什么?

因为我还将使用以下方案通过 lightstreamer 服务器传播计算/聚合数据,是否存在一些我可能没有看到的困难,这将需要一些线程机制或其他机制来避免一些阻塞网络调用?

feed = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
feed.connect(("localhost",MYPORT))

feed.send(mytimestamp, myeventdata)

作为一个图,它可以被概括为:与(几乎是实时的)

producerTimedEventLog1 --->|
producerTimedEventLog2 --->|
... |---> loggerReceiverComputingData ---> lighstreamer process ---> mozilla or whatever webclient
... |
producerTimedEventLognN--->|

每个 producerTimedEventLognN 也记录到一个文件。

我对每一个有用的想法都很感兴趣:)

最好的问候

最佳答案

我了解到您的系统涉及多台机器(独立计算机),对吗?那么,首先你要保证发送事件的各个机器的时钟在一定程度上是同步的。但是,由于总是会出现时间同步错误,因此您必须确定“具有完全相同时间戳的所有事件”的含义。在我看来,您需要定义一个任意时间增量值。然后,您只需将此时间增量内带有时间戳的所有事件定义为“同时”发生。

其次,如果我没理解错的话,您希望“生产者”通过 TCP 将他们的事件发送给“收集者”。这就提出了一个问题,你是否已经有了某种通信协议(protocol),你可以在其上简单地添加时间戳事件的通信,或者你是否需要建立一个独立的通信层(收集器上一个不同的 TCP 套接字)。

在任何情况下,您都可能希望创建一个简单的事件类来存储事件消息(日志消息和任何所需数据)以及创建时间戳。生产者创建此类的实例。然后,您可以使用 pickle 通过字节流(TCP 连接)将特定事件传输到收集器。收集器可以对其进行解封和处理。

请注意,Linux 上的 time.time() 分辨率高于 Windows。

关于python,twistedmatrix ...通过套接字记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17302622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com