【发布时间】:2018-06-08 17:37:02
【问题描述】:
我有一个服务器和多个客户端。一段时间后,客户端向服务器发送一个活动数据包。 (此时,Server 不响应活动数据包)。对于服务器和客户端,该时间段可能会在运行时更改设备并在运行时进行配置。我想在一个或多个客户端未发送活动数据包时生成警报。 (一包或两个一排等)。这种活力用于应用程序的其他部分,因此越快通知越好。我想出了一些想法,但我无法选择一个。
-
创建一个任务,检查每个客户端的最后一个活动数据包时间戳与当前时间,并生成一个或多个警报。在应该小于最小客户端周期的某个周期调用此方法。
实际上这对我来说似乎更好,但是这种方式不必要地检查了一些客户。 (例如:如果客户周期改变 1-5 分钟,任务应该至少每分钟运行一次,所以我检查所有超过 2 分钟周期的客户都是多余的)。此外,如果客户周期的最小值减少,我也应该减少任务周期。
-
为每个客户端创建一个任务,并检查最后一个活着的数据包时间戳与当前时间,休眠一个客户端的周期时间。
这样,如果客户数量非常多,就会有几十个任务。由于他们大部分时间都会睡觉,我仍然怀疑这是否更优雅。
这种情况有什么成语或模式吗?我认为watchdog kind 的实现很好,但是我没有在Java 中看到类似的东西。
【问题讨论】:
标签: java architecture software-design