Files
2026-07-13 13:36:36 +08:00

67 lines
1.9 KiB
Bash

#!/bin/bash
set -xe
export PYTHONPATH="./"
start_mode=${1:-api}
start_knowledge(){
# 知识库解析的celery worker
celery -A bisheng.worker.main worker -l info -c 20 -P threads -Q knowledge_celery -n knowledge@%h
}
start_workflow(){
# 工作流相关的celery worker
celery -A bisheng.worker.main worker -l info -c 100 -P threads -Q workflow_celery -n workflow@%h
}
start_beat(){
# 定时任务调度
celery -A bisheng.worker.main beat -l info
}
start_linsight(){
# 灵思后台任务worker
python bisheng/linsight/worker.py --worker_num 4 --max_concurrency 5
}
start_default(){
# 默认其他任务的执行worker,目前是定时统计埋点数据
celery -A bisheng.worker.main worker -l info -c 100 -P threads -Q celery -n celery@%h
}
if [ "$start_mode" = "api" ]; then
echo "Starting API server..."
uvicorn bisheng.main:app --host 0.0.0.0 --port 7860 --no-access-log --workers 8
elif [ "$start_mode" = "knowledge" ]; then
echo "Starting Knowledge Celery worker..."
start_knowledge
elif [ "$start_mode" = "workflow" ]; then
echo "Starting Workflow Celery worker..."
start_workflow
elif [ "$start_mode" = "beat" ]; then
echo "Starting Celery beat..."
start_beat
elif [ "$start_mode" = "default" ]; then
echo "Starting default celery worker..."
start_default
elif [ "$start_mode" = "linsight" ]; then
echo "Starting LinSight worker..."
start_linsight
elif [ "$start_mode" = "worker" ]; then
echo "Starting All worker..."
# 处理知识库相关任务的worker
start_knowledge &
# 处理工作流相关任务的worker
start_workflow &
# 处理linsight相关任务的worker
start_linsight &
# 默认其他任务的执行worker,目前是定时统计埋点数据
start_default &
start_beat
echo "All workers started successfully."
else
echo "Invalid start mode. Use api、worker、knowledge、workflow、beat、default、linsight."
exit 1
fi