【发布时间】:2017-04-18 09:12:52
【问题描述】:
我的StuartSierra/component 组件存在循环依赖问题。
我有:
-
webServer组件 - 一个
Healthcheck组件,它定期遍历系统以查找实现healthcheck协议的组件。这是监控的一部分。 - 实现
healthcheck协议的数据库、作业队列连接等组件。
WebServer 也实现了healthcheck 协议。
我有一个给定系统返回组合路由的函数,允许查询存储在 healthcheck 组件中的最后一个 healthckeck 状态。
所以我现在在这个函数中有这个循环依赖和一个解决方法,即将系统作为var 并在需要时取消引用它,而不是把它作为一个值。
但这很不方便,并且意味着在启动过程中,检查会在一段时间内报告错误的值。
有没有办法在组件中处理这种生命周期?还是这里有设计缺陷?
【问题讨论】:
标签: dependency-injection clojure health-monitoring