Postgres代理程序用于Dramatiq任务队列
项目描述
Dramatiq 是一个简单的 Python3 任务队列实现。dramatiq-pg 提供了一个基于 Postgres 的 dramatiq 代理实现。
功能
- 超简单部署:单个表,无需ORM。
- 将消息有效负载和结果存储为原生 JSONb。
- 使用 LISTEN/NOTIFY 保持工作同步。无轮询。
- 实现延迟任务。
- 由于Postgres MVCC而可靠。
- 自愈:自动清除旧消息。崩溃后自动恢复。
- 维护实用CLI:flush、purge、stats等。
请注意,dramatiq 假设任务是幂等的。此代理在崩溃后恢复也做出相同的假设。
安装
- 从PyPI安装dramatiq-pg软件包
$ pip install dramatiq-pg psycopg2-binary
确保您已安装 psycopg2 或 psycopg2-binary。 - 使用
init
命令初始化数据库架构。$ dramatiq-pg init
或将dramatiq-pg/schema.sql
调整到您的需求。 - 在导入actor之前,使用连接池定义全局代理
import dramatiq import psycopg2.pool from dramatiq_pg import PostgresBroker dramatiq.set_broker(PostgresBroker(i)) @dramatiq.actor def myactor(): ...
现在声明/导入actor,就像任何 dramatiq 配置 一样管理worker。有一个可用的 示例脚本,已在CI上测试。
CLI工具 dramatiq-pg
允许您重新排队消息,清除旧消息并显示队列上的统计信息。有关详细信息,请参阅 --help
。
Dramatiq-pg 文档托管在GitLab上,为您提供了更多关于作为Dramatiq代理的Postgres部署和操作的详细信息。
集成
Django:使用由Curtis Maloney提供的django-dramatiq-pg。它包括配置、ORM模型和数据库迁移。
支持
如果您遇到错误或缺少功能,请尽可能详细地在GitLab上创建问题。
dramatiq_pg遵循PostgreSQL许可证。
致谢
感谢所有贡献者
- Andy Freeland
- Curtis Maloney,Django支持。
- Federico Caselli,错误修正。
- Giuseppe Papallo,错误修正。
- Rafal Kwasny,改进。
标志由Damien CAZEILS创作。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
dramatiq_pg-0.12.0.tar.gz (13.7 kB 查看哈希值)
构建分发
dramatiq_pg-0.12.0-py3-none-any.whl (15.0 kB 查看哈希值)
关闭
dramatiq_pg-0.12.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 828245fcf3700f6098ec1bff9eb13e50acff69d9c490ceeec5b69ee75d0f9fb1 |
|
MD5 | 90b356372568e965657df88d89c11c49 |
|
BLAKE2b-256 | 949885c41e5dce7aece26641b28d82fd306325c49f7a92f1ccce0866308462c5 |
关闭
dramatiq_pg-0.12.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 808bbe854d1266922570bd5afeacac0ddb93f6a7dbf68624dde2f76d72d95b58 |
|
MD5 | 44328b62daf940e0b1760167bc8e6f0e |
|
BLAKE2b-256 | 02cc59114fca251d37c980b048bdb837fbdbf02ec8d2d64dd653c78628e6afd1 |