核心用法
queue-task 是一个面向长时运行批量任务的持久化队列辅助工具,专为 task-father 任务文件夹架构设计。其核心工作流包括:
1. 初始化队列:通过 python3 scripts/queue_task.py init <slug> 创建状态文件(queue.jsonl、progress.json、done.jsonl、failed.jsonl、lock.json)
2. 状态监控:status 命令实时查看队列进度与锁状态
3. 任务消费:按 BATCH_SIZE 分批处理,支持幂等性键与断点续跑
4. 并发控制:lock.json 防止多实例冲突,clear-stale-lock 处理过期锁
5. 调度集成:通过 openclaw cron 实现定时拉起,配合 CRON_EXPR/CRON_TZ 灵活配置
显著优点
- 持久化可靠:JSONL 追加日志保证任务不丢失,支持崩溃恢复
- 幂等设计:业务层定义幂等键,重复执行无副作用
- 轻量依赖:仅依赖 Python3 与 openclaw CLI,无外部数据库
- 可移植配置:
config.env支持多环境切换,示例文件降低配置门槛
潜在局限
- 单节点锁:
lock.json为文件级锁,无法跨机器协调 - 无内置重试机制:失败任务需外部逻辑处理
failed.jsonl - 依赖 openclaw 生态:若未部署 openclaw,调度功能受限
- 人工运维:锁过期清理、进度监控需主动介入
适合人群
- 需要离线/断点续跑批量任务的开发者
- 使用 task-father 管理多任务的个人或小团队
- 偏好文件型状态而非数据库的简单场景
常规风险
- 锁残留:进程崩溃可能导致
lock.json未释放,需定期clear-stale-lock - 磁盘 I/O:高频写入 JSONL 在大规模任务下可能成为瓶颈
- 配置泄漏:
config.env含敏感路径时需权限管控