我有一系列触发工作的文件观察者。文件观察者在每个固定的时间间隔内查看其列表,如果找到文件,则会触发作业。如果没有,他们会等待,在上述间隔后回来。
某些工作依赖于其他工作,因此以适当的顺序运行它们并具有适当的并行性将是一个很好的优化。但我不想自己想一想。
我应该使用哪些数据结构和算法让计算机告诉我分配给哪个文件监视器的工作(以及以什么顺序放置它们)?
作为输入,我有作业之间的依赖关系,每个作业的文件到达时间和一些观察者。 (首先,我会假装每个工作花费相同的时间)。如何在观察者之间分配作业,以避免不必要的等待差距并获得更快的运行时间?
(我期待以算法的方式处理这种优化,但我想从一些专家建议开始)
编辑:到目前为止,我理解我需要一个DAG(Directed acyclic graph)来表示依赖关系,我需要使用Topological sorting来优化。但是这会响应一个执行行,一个线程。如果我有更多,比如说7?