持续检查系统中其他模块是否正常工作的模块设计模式?

Design Pattern for Module that continuously checks if other modules in the system are working?

我正在实施一个 java 项目,其中有多个解耦模块与共享服务(database/web 服务)交互。

有一个运行状况检查器模块会持续轮询所有模块以查看它们是否正常运行。如果发现某个模块处于非活动状态或无法正常运行,健康检查程序模块将执行修复并重新启动它。

这属于哪种行为模式?

Health Checker 基本上应该跟踪所有其他 模块 的工作方式。

因此健康检查器可以观察变化,因此您可以使用 Observer 设计模式。模块应包含一个方法,该方法应在每次发生更改时通知 Health Checker

要控制共享资源,您可以使用资源管理设计模式单例设计模式

您还可以阅读此 MSDN 博客,其中讨论了您正在谈论的类似应用程序。

另一个类似的设计模式可以是this

在这种情况下我不推荐观察者。如果您没有通知,您将无法区分损坏的模块和不创建事件的工作模块。

Healthchecker 应该使用调度程序并偶尔轮询每个模块。 写起来更容易,效果更好。