1

我有 4 项服务。每个都依赖于其他人,例如,如果服务 A 启动,则 B 和 C 可以启动,如果 B 启动,则 D 可以启动。如果 A->B 和 C,如果 B-> D。我已经设法创建了它们的 start() 和 stop() 方法,但我只是不知道如何在它们之间建立依赖关系。我正在考虑向 ChechRequirements 类服务发送他必须运行的服务以及该服务所依赖的服务列表,如果该列表等于当前运行的列表,他可以像其他人一样在该服务之前启动。这是一个好主意还是你有另一个?

太感谢了

4

1 回答 1

1

我建议您依赖一个经过批准的框架,例如 OSGi(和他的 Apache Felix 实现)。

如果您出于任何原因想留在自己的框架上,我建议您根据这些步骤设计和设置生命周期管理:

  1. 已停止:服务存在
  2. Inactive :服务已初始化,但依赖项不可用
  3. Ready :运行的所有条件都有效(例如依赖项)
  4. 开始:服务可以处理请求

然后,当启动一个依赖于另一个服务的服务时,您必须升级依赖的状态。并且在停止依赖时,您必须关闭依赖服务的状态。

于 2013-06-19T12:03:17.590 回答