我有一个服务器和多个客户端。在某段时间内,客户端向服务器发送一个活动数据包。 (此时,服务器不响应活动数据包)。对于服务器和客户端,该时间段可以将设备更改为设备并在运行时进行配置。我想在一个或多个客户端不发送活动数据包时生成警报。 (一包或两排等)。这种活力用于应用的其他部分,因此通知越快越好。我提出了一些想法,但我无法选择一个。
这种情况有成语或模式吗?我认为watchdog
类型的实现很好,但是我没有看到类似于Java
的东西。
方法2不是很有用,因为为100个客户编写100个任务是模糊的想法。如果使用平均客户端期间而不是最小值,则可以优化方法1。
这取决于您的需求。如果在几秒钟之后(或更早)生成警报,它是否至关重要?如果没有,那么可能值得对附近心跳间隔的客户进行分组并对不是单个客户端而是针对客户端组进行检查?这将允许减少任务数量(100 - > 10)并增加单个任务(1 - > 10)处理的客户端数量。
第一种方法很好。
我唯一能建议你的是创建一个独立的服务来进行这种控制。如果将此任务设置为服务器中的线程,则不可管理。想象一下你的控制线程被破坏,被杀等等,你会注意到什么?因此,构建一个独立的OS服务,另一个java程序,定期检查最后的活动时间戳。
通过这种方式,您可以轻松地修改和重新启动服务,并分别查看其日志。根据它的重要性,你甚至可以建立一个“监督看门狗”服务。