#!/bin/bash # 农业股票数据处理器 - 定时调度器启动脚本 # 每30分钟自动执行一次数据处理任务 echo "===================================" echo "农业股票数据处理器 - 定时调度器模式" echo "===================================" echo "该模式将每30分钟自动执行一次数据处理" echo "启动中..." echo "" # 设置Java环境变量(如果需要) # export JAVA_HOME=/path/to/java # 设置Spark环境变量(如果需要) # export SPARK_HOME=/path/to/spark # 获取当前脚本所在目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 进入项目目录 cd "$SCRIPT_DIR" # 检查target目录是否存在编译后的jar文件 JAR_FILE="target/spark-data-processor-1.0.0.jar" if [ ! -f "$JAR_FILE" ]; then echo "未找到编译后的jar文件,正在编译项目..." # 检查是否有maven if ! command -v mvn &> /dev/null; then echo "错误: 未找到Maven命令,请确保Maven已安装并配置到PATH中" exit 1 fi # 编译项目 echo "执行: mvn clean package -DskipTests" mvn clean package -DskipTests if [ $? -ne 0 ]; then echo "项目编译失败,请检查错误信息" exit 1 fi fi # 检查配置文件 CONFIG_FILE="src/main/resources/application-prod.conf" if [ ! -f "$CONFIG_FILE" ]; then echo "警告: 未找到生产环境配置文件 $CONFIG_FILE" echo "将使用开发环境配置" CONFIG_FILE="src/main/resources/application-dev.conf" fi # 设置JVM参数 JVM_OPTS="-Xmx4g -Xms2g -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps" # 设置日志配置 LOG_CONFIG="-Dlogback.configurationFile=src/main/resources/logback.xml" # 启动应用 echo "启动定时调度器..." echo "配置文件: $CONFIG_FILE" echo "JVM参数: $JVM_OPTS" echo "" echo "使用以下命令与调度器交互:" echo " status - 查看调度器状态" echo " trigger - 手动触发一次任务" echo " stop - 停止调度器" echo " help - 显示帮助信息" echo "" # 执行Java程序 java $JVM_OPTS $LOG_CONFIG \ -Dconfig.file="$CONFIG_FILE" \ -jar "$JAR_FILE" scheduler echo "" echo "定时调度器已停止"