说我有两个预定的流程:A和B.
鉴于B在A完成之前不应该运行,我怎么能优雅地强制执行这种依赖?
已考虑的方法:
完成后有一个时间表B.如果出于某种原因A失败,那么B的缺点就是永远不会被安排。
当B运行时,请ping A以查看后者是否已完成。如何实现这一目标(网络,文件,数据库记录,消息队列)可能会引入第三种依赖性而引起混乱和问题。
将A和B合并为一个进程。这有两个紧密绑定的缺点,如果需要,更难以单独重新运行其中一个。
思想?
答案 0 :(得分:2)
您的选项1直接回答您的问题:如果B依赖于A,而A失败,则A不安排B意味着B不会发生。
除非B必须在A之后运行,否则A是否成功。
在这种情况下,类似下面的内容(在bash中)会起作用:
A && B
答案 1 :(得分:1)
您可以修改第3步:创建两个进程以隔离运行,然后创建运行其他两个进程的第三个进程。