67 lines
1.9 KiB
Bash
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
|