跳转到主要内容

使用MySQL实现简单的键存储来跟踪哪些键是“完成”的。

项目描述

## 简介

dones模块可以用来标记一个键是否是“完成”的,并检查一个键是否已被标记为“完成”。键也可以被取消标记,这样它们就不再是“完成”。此外,可以通过清除Dones来取消所有键的标记。键被保存在自己的命名空间中,以避免与其他键集的冲突,并使清除变得容易。

为什么?我用dones来跟踪我已经做了什么。更具体地说,我在一个大集群(几千个核心)上运行大量计算(几百万个任务),该集群的文件系统(Isilon)较慢。当任务不可避免地失败时,可能是因为网络存储离线,或者计算机死机,或者另一个用户用连接压倒数据库,我需要重新提交那些尚未完成的任务到集群的批处理排队系统(LSF)。

此模块中的解决方案符合我的限制条件。它可以处理一千个作业同时标记任务完成(不是同时进行)。对于读取和写入高达数百万个作业,它速度合理。这很重要,因为批处理队列(LSF)一次只能优雅地处理几千个作业。最后,dones使用MySQL作为后端,这对于我来说很重要,因为我不能在我的集群上运行像Redis这样的键值服务器。

## 贡献

请在github上自由提交pull请求。

## 测试

尴尬的是,dones 配置了从环境变量中读取的 MySQL 数据库 URL,因此要测试它,您需要添加一个 URL。例如

DONES_DB_URL=mysql://myuser:password@localhost/mydb nosetests

## 需求

  • 可能是 Python 2.7(因为这是它唯一测试过的版本。)

  • MySQL-python PyPI 软件包。

## 安装

### 从 pypi.python.org 安装

使用 pip 下载和安装

pip install dones

### 从 github.com 安装

使用 GitHub,可以克隆并安装特定版本的软件包

cd ~ git clone git@github.com:todddeluca/dones.git cd dones python setup.py install

或者使用 pip

pip install git+git://github.com/todddeluca/dones.git#egg=dones

## 使用

import dones

if not dones.get(‘my_pipeline’).done(‘task1’)

dotask(‘task1’) dones.get(‘my_pipleline’).mark(‘task1’)

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪个,请了解有关 安装软件包 的更多信息。

源分发

dones-0.2.0.tar.gz (7.6 kB 查看哈希值)

上传时间

由以下支持