作业调度和跟踪库
jobcontrol的Python项目详细描述
作业控制
作业调度和跟踪库。
为调度、运行、跟踪和 正在检索“作业”的结果。
每个作业定义都是任何可调用的python 要传递给它的参数。
跟踪包括存储: -函数返回值 -任何引发的异常 -任务执行期间生成的日志消息 -如果任务支持,则可以选择“进度”
状态存储与主应用程序完全分离。
“核心”项目目前包括两种存储实现:
- MemoryStorage–将所有数据保存在内存中,对 开发/测试。
- PostgreSQLStorage–将所有数据保存在PostgreSQL数据库中, 用于生产。
项目状态
travis ci构建状态
Branch | Status |
---|---|
master | |
develop |
源代码
源托管在github上:https://github.com/rshk/jobcontrol/
并且可以使用:
git clone https://github.com/rshk/jobcontrol.git
项目文件
文档托管在github页面上:(即将发布!)http://rshk.github.io/jobcontrol/
概念
- 每个作业都定义为一个要运行的python函数,带有参数 以及关键字。
- 每个作业都可以依赖于其他作业;依赖关系系统确保 所有依赖项都是在运行给定作业之前生成的,并且 当构建“更高级别”的作业时,将重建这些作业。
示例:
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ │ │ │ │ │ │ Job A │ → │ Job B │ → │ Job C │ → │ Job D │ │ │ │ │ │ │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘
当运行任务C时,需要构建B;这 反过来,需要构建A。如果build_deps=True是 指定后,将触发C和B的生成。否则, 生成将以“不满足依赖项”错误终止。
成功生成C后,D不会过时。如果 ^已指定{tt11}$,将生成D。 触发。
其他示例:Job #2依赖于Job #2:
job_1
Build | Succ? | Time | Skip? |
---|---|---|---|
1 | TRUE | 1 | FALSE |
2 | FALSE | 3 | FALSE |
3 | TRUE | 4 | TRUE |
4 | TRUE | 5 | FALSE |
job_2
Build | Succ? | Time | Skip? |
---|---|---|---|
1 | TRUE | 2 | FALSE |
No rebuild needed. | |||
No rebuild needed. | |||
2 | TRUE | 6 | FALSE |
更改日志
v0.1a
- 支持作业定义,包括:函数、参数、Kwargs、依赖项
- 支持跟踪作业运行,包括开始/结束日期、开始/完成/成功 状态和返回值
- 支持存储作业运行中的日志
- 内存备份存储(用于状态)
- PostgreSQL备份存储(用于状态)