Binomic#
基于 anyio 与 Redis Streams 的异步任务框架。
Binomic 以装饰器声明任务,以 Redis Streams 投递消息,由多进程 Worker 消费执行, Master 进程负责监督与故障回收。消息体采用 msgspec JSON 序列化,任务 ID 使用 UUIDv7。
特性#
声明式任务:
@task()装饰器,支持direct(立即)、delay(延迟)、cron(cron 表达式)、interval(固定间隔)四种模式,详见 任务模式与调度Redis Streams 消息代理:基于消费者组与 PEL 的可靠投递,支持通过
xautoclaim回收失联消费者的消息失败重试:失败或超时的消息按
max_attempts(默认 3)退避重投, 详见可靠性多进程 Worker:Master 以 multiprocessing 启动多个 Worker 子进程,并携 presence 心跳持续监督 —— 心跳走进程间 IPC(不经 Redis),因而在
is_alive()之外还能识别「进程活着但已停跳」类型安全:全量 mypy strict 与 ruff 检查,任务注册表基于泛型
TaskSpec[P, T]Litestar 集成:内置
BinomicPlugin,将 Binomic 客户端注入 Litestar 依赖
要求 Python ≥ 3.12,Redis ≥ 7.x。