我需要一个允许执行以下操作的框架:
允许动态定义任务(我将读取一个外部配置文件并创建任务/作业;例如task = spawn一个外部命令)
提供一种指定对现有任务的依赖性的方法(例如,任务A将在任务B完成之后运行)
如果执行顺序允许,则能够在多个进程中并行运行任务(即没有任务相互依赖性)
允许任务依赖于某个外部事件(不确切地描述该事件,但是某些任务会完成,并且一段时间后它们会产生结果,例如后台运行的作业;我需要指定一些依赖的任务此背景工作完成的事件)
撤消/回滚支持:如果一项任务失败,请尝试撤消之前已执行的所有操作(我不希望在任何框架中都执行此操作,但是我想值得一提。)
因此,显然,这看起来或多或少像一个构建系统,但是我似乎找不到能够使我动态创建任务的东西,大多数事情我似乎已经在“ Makefile”中定义了它们。
有任何想法吗?
AFAIK,在python中没有完全符合您描述的框架。因此,您的选择包括自己构建一些东西或破解一些需求并使用现有工具对其进行建模。闻起来像芹菜。
您可能有一个celery任务,该任务读取一个包含一些python函数源代码的配置文件,然后使用eval或ast.literal_eval执行它们。
Celery提供了一种定义子任务(任务之间的依赖关系)的方法,因此,如果您知道自己的依赖关系,则可以对它们进行建模。
只要知道任务的执行顺序,就可以将它们路由到所需的任意多台辅助计算机上。
您可以定期轮询此后台作业的结果,然后启动与之相关的任务。
撤消/回滚:这可能很棘手,取决于您要撤消的内容;结果?州?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。