我需要一个允许我执行以下操作的框架:
允许动态定义任务(我将读取外部配置文件并创建任务/作业;task=spawn 例如外部命令)
提供一种指定对现有任务的依赖关系的方法(例如,任务 A 将在任务 B 完成后运行)
如果执行顺序允许(即没有任务相互依赖性),能够在多个进程中并行运行任务
允许一个任务依赖于一些外部事件(不知道如何描述这个,但是有些任务完成后会在一段时间后产生结果,就像后台运行的作业;我需要指定一些依赖于此后台作业完成事件的任务数)
撤消/回滚支持:如果一个任务失败,尝试撤消之前执行的所有内容(我不希望这在任何框架中实现,但我想这值得一问..)
所以,很明显,这看起来或多或少像一个构建系统,但我似乎无法找到允许我动态创建任务的东西,我似乎已经在“生成文件”。
有什么想法吗?
最佳答案
我一直在做更多的研究,我偶然发现了 doit它提供了我需要的核心功能,但又不过分(并不是说 Celery 不能解决这个问题,但这对我的用例来说效果更好)。
关于用于任务执行和依赖关系处理的 Python 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9664809/