使用mysql来实现一个简单的密钥存储,跟踪哪些密钥被“完成”。
dones的Python项目详细描述
##简介
dones模块可用于标记键是否“完成”并检查 一把钥匙被标记为“完成”。钥匙也可以不加标记,因此它们不是 更长的“完成”。此外,所有的钥匙都可以通过清理驴子来取消标记。 密钥保存在它们自己的命名空间中,以避免与其他 设置其他密钥并使其易于实现清除。
为什么?我用甜甜圈来记录我已经做过的事情。更多 具体来说,我在一个大型集群上运行大型计算(几百万个任务) (几千个核心)有一个慢文件系统(isilon)。当任务不可避免时 失败,可能是因为网络存储脱机,或者计算机死机,或者 另一个用户用连接压倒了数据库,我需要重新提交 群集的批处理队列系统(LSF)中尚未完成的任务 完成。
此模块中的解决方案符合我的限制条件。它处理并发的 写下一千份工作标记着已经完成的事情(不是一次完成的)。它是 读写速度相当快,可提供上百万个工作岗位。这是 很重要,因为或批处理队列(LSF)在 时光优雅。最后,dones使用mysql作为后端,这一点很重要 因为我不能在我使用的集群上运行像redis这样的密钥值服务器。
##贡献
可以在github上提出请求。
##测试
令人尴尬的是,dones配置为来自 环境,所以要测试它,需要添加一个url。例如:
DONES_DB_URL=mysql://myuser:password@localhost/mydb nosetests
##要求
- 可能是Python2.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’)