Funboost 连续启动多个消费者
SkillProductivityUse when you need to start multiple function consumers consecutively in funboost (multiple consumers running at the same time). Trigger scenarios: running the consumption of multiple @boost task functions in a single script, starting multiple consumers for different queues. Keywords: 连续启动 (consecuti
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Funboost 连续启动多个消费者 skill
What this skill tells your AI
The instructions your AI receives, as published by ydf0509/funboost in .agents/skills/funboost-multi-consumer-startup/SKILL.md and read by ahel’s review.
概述
Funboost 的 consume() 天生非阻塞——调用后立即返回,消费在后台运行。因此连续启动多个函数消费非常简单:最基本的用法就是 2 个函数直接顺序调用 consume(),不需要线程、进程或任何包装。
适用场景
- 一个脚本里同时运行多个任务函数的消费者
- 多个队列同时被消费
铁律(绝对不可违反)
- 禁止用
threading.Thread包装consume()— 如threading.Thread(target=func1.consume).start()是多此一举,func1.consume()本身不会阻塞主线程 - 禁止用
subprocess或multiprocessing.Process逐个启动消费 — 框架已从层面支持直接连续调用
速查表
| 启动方式 | 代码 | 说明 |
|---|---|---|
| 连续启动多个 | func1.consume(); func2.consume() | 最基本的用法,直接顺序调用 |
| 主线程保活 | enable_ctrl_c_quit_on_windows() | 主线程无其他阻塞任务时建议调用,Ctrl+C 可退出 |
核心代码模式
最基本的连续启动:2 个函数顺序调用
from funboost import boost, BoosterParams, BrokerEnum, enable_ctrl_c_quit_on_windows
@boost(BoosterParams(queue_name="queue_a", broker_kind=BrokerEnum.SQLITE_QUEUE, concurrent_num=3, qps=5))
def task_a(x: int):
return x * 1
@boost(BoosterParams(queue_name="queue_b", broker_kind=BrokerEnum.SQLITE_QUEUE, concurrent_num=3, qps=5))
def task_b(x: int):
return x * 10
if __name__ == "__main__":
task_a.push(1); task_b.push(1)
# 最基本的连续启动 —— 2 个函数直接顺序调用,互不阻塞
task_a.consume()
task_b.consume()
# 主线程保活(可选,不加也能通过关闭窗口/kill 进程停止)
enable_ctrl_c_quit_on_windows()
每个消费者拥有独立的并发池、控频、重试等配置,互不影响。函数更多时同理,继续顺序调用
func3.consume()即可。
验证脚本
scripts/demo_multi_consume.py 验证多个消费者连续启动后各自独立消费,可运行:
运行前必须设置
PYTHONPATH=项目根目录。
常见错误
| 错误写法 | 正确写法 |
|---|---|
threading.Thread(target=func1.consume).start() | func1.consume() 直接调用 |
subprocess.Popen([...func1...]) 启动消费 | func1.consume() |
用 time.sleep 前没启动消费就 push | 先 push 再 consume,或 push 后 consume |
| 脚本没有保活导致主线程退出 | 末尾加 enable_ctrl_c_quit_on_windows() |
相关 Skill
using-funboost-basics— 基础使用入门(启动消费、push/publish)
Signals
- GitHub stars
- 891
- Forks
- 166
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
funboost-multi-consumer-startup- Source
- github.com/ydf0509/funboost