一个 java 工程, 可能依赖多个其他的 java 服务,在进行发布的时候, 需要考虑依赖关系。
例如有 a~g, x~z 两组服务, 他们的依赖关系如下:
第一组:
x <-- y // x 依赖 y
z <-- y // z 依赖 y
第二组:
a <-- b //a 依赖 b
c <-- b // c 依赖 b
b <-- e, f // b 依赖 e, f 两个服务。下面的服务关系类同, 不再写注释了。
g <-- b
a <-- e
最终排序为:
第一组:
y, [x, z] // y 是第一批次。x 和 z 都属于第二批次,xz 不分先后
第二组:
[e, f], b , [a, c, g] // e, f 属于第一批次,b 属于第二批次,a,c,g 属于第三批次
如何用 python 程序表达排序的逻辑呢?