使用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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d925311c43f81935fc1c0766d4b486870e996c498a2b0b99b46e3e425abce371 |
|
MD5 | 24746b17efda00d1d2d6f430f66cbc39 |
|
BLAKE2b-256 | c9e25ac61539d6cbc9e3da8f957104900f0a4ae9525422ebb1a6af281ac9c07a |