gpt4 book ai didi

java - 启动服务——有向无环图

转载 作者:行者123 更新时间:2023-12-01 05:48:00 24 4
gpt4 key购买 nike

我正在使用的框架由有状态服务组成,这些服务依赖于其他服务,形成有向无环图 http://en.wikipedia.org/wiki/Directed_acyclic_graph

我想尽可能高效地启动服务。这意味着在可能的情况下并行启动服务。例如,在维基百科链接上的图表中。我会同时启动 3、5 和 7,因为它们没有任何依赖关系。我见过拓扑排序,但仅凭这一点并不能告诉您可以并行启动什么。我正在寻找一个库/API 来对服务进行分组,例如:

ab, c, d,e.f, g,h

这告诉我首先开始“a”,然后并行开始“b”、“c”和“d”,然后是“e”,依此类推。

我发现了一些对顶点进行建模的库,但没有任何东西可以满足我正在寻找的分组。到目前为止,我已经找到了一些有向图的实现,但是,我需要一个宽松的许可证(例如非 gpl)。我找到了 ComputeNodeOrder http://www.docjar.com/docs/api/org/eclipse/osgi/internal/resolver/ComputeNodeOrder.Digraph.html (来自Equinox org.eclipse.osgi_3.6.2.R36x_v20110210),Jgrapht(lgpl)http://www.jgrapht.org/javadoc/ ,荣格http://jung.sourceforge.net/index.html ,丛http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/dag/DAG.html但不确定其中任何/所有这些是否能满足我的需要。

最佳答案

对我来说,这听起来像是一棵使用广度优先搜索迭代的树。每个级别都有可以并行启动的服务;后面的依赖项位于树的更下方。

关于java - 启动服务——有向无环图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com