跳转到主要内容

任务处理执行器和配置框架

项目描述

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 (47.9 kB 查看哈希值)

上传时间

构建的分发版

task_processing-1.2.0-py2.py3-none-any.whl (60.2 kB 查看哈希值)

上传时间 Python 2 Python 3

支持