gpt4 book ai didi

algorithm - 服务器监控和通知的逻辑/算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:08 25 4
gpt4 key购买 nike

我目前正在开发一个小型服务器监控应用程序,它使用 WMI 来收集硬件信息,例如 CPU 和 RAM 使用情况,以及一些其他方法来查询服务(FTP、HTTP、IMAP、SMTP、Raw TCP Socket 等) .

我已经为上面的每一项创建了数据收集器,并且能够从中获取数据。每次刷新服务监视器时,服务数据提供者将提供服务的响应时间和服务器响应。

但是我遇到了困难,然后尝试构建用于通知用户错误和恢复的逻辑。我的服务类,它是所有服务子类的基类,包含几个事件 - OnRefreshed、OnErrorOccured、OnErrorRecovered、OnResponseTimeThresholdReached、OnResponseTimeThresholdRecovered。

我正在尝试实现以下场景:

  • 当服务正常响应时,会在每个刷新间隔触发 OnRefreshed 事件。

  • 发生错误时(例如 HTTP 上的 404),将触发 OnErrorOccured 事件,如果用户希望发送通知,请继续发送通知,但仅发送一次,直到服务恢复.

  • 当服务从错误中恢复时,将触发 OnErrorRecovered 事件,如果用户需要通知,则只发送一次,直到再次出现错误。

  • ResponseTime 事件也是如此,它应该在相应情况发生时触发。

  • 如果服务在每个刷新间隔内在 OK 和 Error/ThresholdReached 之间交替,则通知之间应该有一个冷却时间,以防止通知狂潮。

我目前正在使用 C# 构建此应用程序。非常感谢对这个问题的任何启发,或任何其他更好的解决方案来实现这一点。

谢谢。

最佳答案

我不是 C# 编码员,但以下是我将为每项服务做的事情。
我假设您会将每项服务的通知信息存储在某处。
我会为每个服务维护一个通知数组,其中包含 < user > -> 标志映射。旗帜是
0 - 未通知
1 - error_occurred_notified
2 - error_recovered_notified
3 - 两者

  1. 每当用户收到事件通知时,根据标志标记它
  2. 每当刷新事件发生时,将标志设置为 0。

关于algorithm - 服务器监控和通知的逻辑/算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6265769/

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