-
Notifications
You must be signed in to change notification settings - Fork 54
Home
韩数 edited this page Nov 6, 2023
·
4 revisions
bamboo-engine 是一个通用的流程引擎,他可以解析,执行,调度由用户创建的流程任务,并提供了如暂停,撤销,跳过,强制失败,重试和重入等等灵活的控制能力和并行、子流程等进阶特性,并可通过水平扩展来进一步提升任务的并发处理能力。
bamboo-engine 是流程引擎核心模块、调度逻辑的定义和实现,并没有内置特定的引擎运行时,需要搭配实现了 bamboo_engine.eri.interfaces.EngineRuntimeInterface 接口的引擎运行时使用,目前提供了以下运行时可供使用:
基于 Django,Celery 的运行时:bamboo-pipeline
bamboo-engine 同样也允许用户灵活实现满足自己特定应用场景的运行时。
测试环境:
- MacBook Pro(16 英寸,2019)
- 处理器:2.6 GHz 六核Intel Core i7
- 内存:32 GB 2667 MHz DDR4
- OS:macOS Big Sur 11.2.1
- Broker:RabbitMQ 3.8.2
- MySQL:5.7.22
- worker 启动命令(单个 worker 进程 -c 参数不变,通过增加进程来提高并发处理能力)
- python manage.py celery worker -c 100 -P gevent -l info -Q er_execute -n execute_%(process_num)02d
- python manage.py celery worker -c 100 -P gevent -l info -Q er_schedule -n schedule_%(process_num)02d
测试场景 | worker concurrency | 流程执行耗时(s) |
---|---|---|
100个流程(单流程17个节点)并发执行 | 100 | 25.98 |
100个流程(单流程17个节点)并发执行 | 200 | 14.75 |
100个流程(单流程17个节点)并发执行 | 500 | 8.29 |
100个流程(单流程17个节点)并发执行 | 1000 | 6.78 |
1000节点大流程 | 100 | 19.33 |
1000节点大流程 | 200 | 12.5 |
1000节点大流程 | 500 | 11 |
1000节点大流程 | 1000 | 7.5 |