|
1 | 1 | #!/bin/bash |
| 2 | +set -xe |
2 | 3 |
|
3 | 4 | export PYTHONPATH="./" |
4 | 5 |
|
5 | 6 | start_mode=${1:-api} |
6 | 7 |
|
7 | | -if [ $start_mode = "api" ]; then |
| 8 | +start_knowledge(){ |
| 9 | + # 知识库解析的celery worker |
| 10 | + celery -A bisheng.worker.main worker -l info -c 20 -P threads -Q knowledge_celery -n knowledge@%h |
| 11 | +} |
| 12 | + |
| 13 | +start_workflow(){ |
| 14 | + # 工作流相关的celery worker |
| 15 | + celery -A bisheng.worker.main worker -l info -c 100 -P threads -Q workflow_celery -n workflow@%h |
| 16 | +} |
| 17 | + |
| 18 | +start_beat(){ |
| 19 | + # 定时任务调度 |
| 20 | + celery -A bisheng.worker.main beat -l info |
| 21 | +} |
| 22 | + |
| 23 | +start_linsight(){ |
| 24 | + # 灵思后台任务worker |
| 25 | + python bisheng/linsight/worker.py --worker_num 4 --max_concurrency 5 |
| 26 | +} |
| 27 | +start_default(){ |
| 28 | + # 默认其他任务的执行worker,目前是定时统计埋点数据 |
| 29 | + celery -A bisheng.worker.main worker -l info -c 100 -P threads -Q celery -n celery@%h |
| 30 | +} |
| 31 | + |
| 32 | +if [ "$start_mode" = "api" ]; then |
8 | 33 | echo "Starting API server..." |
9 | 34 | uvicorn bisheng.main:app --host 0.0.0.0 --port 7860 --no-access-log --workers 8 |
10 | | -elif [ $start_mode = "worker" ]; then |
11 | | - echo "Starting Celery worker..." |
| 35 | +elif [ "$start_mode" = "knowledge" ]; then |
| 36 | + echo "Starting Knowledge Celery worker..." |
| 37 | + start_knowledge |
| 38 | +elif [ "$start_mode" = "workflow" ]; then |
| 39 | + echo "Starting Workflow Celery worker..." |
| 40 | + start_workflow |
| 41 | +elif [ "$start_mode" = "beat" ]; then |
| 42 | + echo "Starting Celery beat..." |
| 43 | + start_beat |
| 44 | +elif [ "$start_mode" = "default" ]; then |
| 45 | + echo "Starting default celery worker..." |
| 46 | + start_default |
| 47 | +elif [ "$start_mode" = "linsight" ]; then |
| 48 | + echo "Starting LinSight worker..." |
| 49 | + start_linsight |
| 50 | +elif [ "$start_mode" = "worker" ]; then |
| 51 | + echo "Starting All worker..." |
12 | 52 | # 处理知识库相关任务的worker |
13 | | - nohup celery -A bisheng.worker.main worker -l info -c 20 -P threads -Q knowledge_celery -n knowledge@%h & |
14 | | - # 工作流执行worker |
15 | | - nohup celery -A bisheng.worker.main worker -l info -c 100 -P threads -Q workflow_celery -n workflow@%h & |
| 53 | + start_knowledge & |
| 54 | + # 处理工作流相关任务的worker |
| 55 | + start_workflow & |
| 56 | + # 处理linsight相关任务的worker |
| 57 | + start_linsight & |
| 58 | + # 默认其他任务的执行worker,目前是定时统计埋点数据 |
| 59 | + start_default & |
| 60 | + start_beat |
16 | 61 |
|
17 | | - python bisheng/linsight/worker.py --worker_num 4 --max_concurrency 5 |
| 62 | + echo "All workers started successfully." |
18 | 63 | else |
19 | | - echo "Invalid start mode. Use 'api' or 'worker'." |
| 64 | + echo "Invalid start mode. Use api、worker、knowledge、workflow、beat、default、linsight." |
20 | 65 | exit 1 |
21 | 66 | fi |
0 commit comments