开发者社区> 问答> 正文

用于任务执行和依赖项处理的Python框架

我需要一个允许执行以下操作的框架:

允许动态定义任务(我将读取一个外部配置文件并创建任务/作业;例如task = spawn一个外部命令)

提供一种指定对现有任务的依赖性的方法(例如,任务A将在任务B完成之后运行)

如果执行顺序允许,则能够在多个进程中并行运行任务(即没有任务相互依赖性)

允许任务依赖于某个外部事件(不确切地描述该事件,但是某些任务会完成,并且一段时间后它们会产生结果,例如后台运行的作业;我需要指定一些依赖的任务此背景工作完成的事件)

撤消/回滚支持:如果一项任务失败,请尝试撤消之前已执行的所有操作(我不希望在任何框架中都执行此操作,但是我想值得一提。)

因此,显然,这看起来或多或少像一个构建系统,但是我似乎找不到能够使我动态创建任务的东西,大多数事情我似乎已经在“ Makefile”中定义了它们。

有任何想法吗?

展开
收起
祖安文状元 2020-02-21 17:56:41 847 0
1 条回答
写回答
取消 提交回答
  • AFAIK,在python中没有完全符合您描述的框架。因此,您的选择包括自己构建一些东西或破解一些需求并使用现有工具对其进行建模。闻起来像芹菜。

    您可能有一个celery任务,该任务读取一个包含一些python函数源代码的配置文件,然后使用eval或ast.literal_eval执行它们。

    Celery提供了一种定义子任务(任务之间的依赖关系)的方法,因此,如果您知道自己的依赖关系,则可以对它们进行建模。

    只要知道任务的执行顺序,就可以将它们路由到所需的任意多台辅助计算机上。

    您可以定期轮询此后台作业的结果,然后启动与之相关的任务。

    撤消/回滚:这可能很棘手,取决于您要撤消的内容;结果?州?

    2020-02-22 10:27:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载