任务处理执行器和配置框架
项目描述
Task Processing
Yelp通用的任务处理(也称为taskproc
)的接口和共享基础设施。
开发者设置
先决条件
运行示例
hello-world.py 是一个简单的示例,它启动一个任务来输出 hello world
。从存储库的根目录运行
docker-compose -f examples/cluster/docker-compose.yaml \
run playground examples/hello-world.py
这将通过 Docker Compose 启动单个主节点、单个代理Mesos集群,并启动一个任务,该任务在终止前将“hello world”打印到沙盒的stdout。
其他示例包括
-
async.py 异步任务运行器的示例。
-
dynamo_persistence.py 使用
stateful
插件将任务事件持久化到 DynamoDB 的示例。 -
file_persistence.py 使用
stateful
插件将任务事件持久化到磁盘的示例。 -
promise.py 使用 promise/future 任务运行器的示例(尚未实现)。
-
subscription.py 订阅任务运行器的示例。
-
sync.py 使用 sync 任务运行器的一个简短示例。
-
timeout.py 使用
timeout
插件超时任务执行的示例。 -
retry.py 使用
retry
插件在失败时重试任务的示例。 -
task_logging.py 使用
logging
插件从Mesos代理获取任务日志的示例。
运行测试
从存储库的根目录运行
make
存储库结构
/interfaces
Event
Runner
TaskExecutor
/plugins
插件可以链式连接,以创建具有多个属性的作业执行管道。请参考持久化/重试/超时示例。
mesos
实现了与Mesos部署通信所需的所有接口。此插件使用PyMesos与Mesos通信。
超时
实现了超时任务执行的执行器。
重试
实现了在失败时重试任务执行的执行器。
日志记录
实现了从Mesos代理检索任务日志的执行器。注意,它必须是mesos执行器的直接上游执行器。
配置选项
- authentication_principal Mesos主身份
- credential_secret_file 存储Mesos机密的文件路径
- mesos_address 连接到Mesos集群的主机:端口
- event_translator 将Mesos特定事件映射到
Event
对象的功能
有状态
待办事项:文档
/runners
运行器提供特定的并发语义,并且应该是平台无关的。
同步
运行任务是一个阻塞操作。 sync
运行器会阻塞,直到正在运行的任务完成或接收到 stop
事件。
异步
提供任务生命周期中不同事件的回调。 async
运行器允许任务指定一个或多个由谓词和回调组成的事件处理器。谓词在接收到来自任务的更新时(例如,它是否已终止以及是否成功)进行评估,如果谓词通过,则调用回调。
Promise/Future
运行任务返回未来对象。
订阅
提供队列对象并接收其中的所有事件。
项目详情
task_processing-1.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4c378564a84411c8d129a4b506fe2548b43c4b4f23316b84a79e37b6051f9e7 |
|
MD5 | f96a60fb432d5f159ff6fdef18e0504a |
|
BLAKE2b-256 | 7cf0937d5ef582fba6eb20da45784929f164110efed75ae14e1f9860918325d4 |
task_processing-1.2.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6b39e88117e21cd68868ede2d67b39dec1a4aea01b7e9e3f3591b6c3a8df1703 |
|
MD5 | 6eb961e9553b092ed21d1b1dda96b4bb |
|
BLAKE2b-256 | c1608504f163883ad85c13ac69fef28b9f1d2c1a2101ebd194c6a54e83eb53f6 |