跳转到主要内容

作业调度和跟踪库

项目描述

作业控制

https://raw.githubusercontent.com/rshk/jobcontrol/develop/.misc/banner.png

作业调度和跟踪库。

提供调度、运行、跟踪和检索“作业”结果的基本接口。

每个作业定义简单地说就是任何Python可调用项,以及传递给它的参数。

跟踪包括存储:- 函数返回值 - 任何抛出的异常 - 作业执行期间产生的日志消息 - 如果任务支持,则可选的“进度”

状态存储完全与主应用程序解耦。

项目“核心”目前包括两种存储实现

  • MemoryStorage – 在内存中保留所有数据,适用于开发/测试。

  • PostgreSQLStorage – 在PostgreSQL数据库中保留所有数据,适用于生产使用。

项目状态

Travis CI构建状态

分支

状态

master

https://travis-ci.org/rshk/jobcontrol.svg?branch=master

develop

https://travis-ci.org/rshk/jobcontrol.svg?branch=develop

源代码

源代码托管在GitHub上:https://github.com/rshk/jobcontrol/

并且可以使用以下方式克隆

git clone https://github.com/rshk/jobcontrol.git

Python包索引

项目可以在PyPI上找到: https://pypi.python.org/pypi/jobcontrol

Latest PyPI version Number of PyPI downloads Supported Python versions Development Status License

项目文档

文档托管在GitHub页面:(即将推出!) http://rshk.github.io/jobcontrol/

概念

  • 每个作业被定义为要运行的Python函数,带有参数和关键字。

  • 每个作业可以依赖于其他作业;依赖性系统确保在运行特定作业之前构建所有依赖项,并且在构建“更高层次”的作业时重建依赖于的作业。

示例

┌─────────┐   ┌─────────┐   ┌─────────┐   ┌─────────┐
│         │   │         │   │         │   │         │
│  Job A  │ → │  Job B  │ → │  Job C  │ → │  Job D  │
│         │   │         │   │         │   │         │
└─────────┘   └─────────┘   └─────────┘   └─────────┘

在运行任务 C 时,需要构建 B;这反过来又需要构建 A。如果指定了 build_deps=True,则将触发构建 CB。否则,构建将因“依赖未满足”错误而终止。

在成功构建 C 后,D 不会过时。如果指定了 build_depending=True,则将触发构建 D

其他示例:任务 #2 依赖于任务 #2

任务 #1

构建

成功?

时间

跳过?

1

TRUE

1

FALSE

2

FALSE

3

FALSE

3

TRUE

4

TRUE

4

TRUE

5

FALSE

任务 #2

构建

成功?

时间

跳过?

1

TRUE

2

FALSE

不需要重新构建。

不需要重新构建。

2

TRUE

6

FALSE

变更日志

v0.1a

  • 支持定义任务,包括:函数、参数、关键字参数、依赖项

  • 支持跟踪任务运行,包括开始/结束日期、启动/完成/成功状态和返回值

  • 支持存储任务运行的日志

  • 内存存储(用于状态)

  • PostgreSQL存储(用于状态)

项目详情


由以下机构支持