通過shell調用spring batch

先在windows中編譯成batch.jar

shell文【bt0007_start.sh】

主執行語句,執行bt0007Job,baseDate是啓動參數

java -jar /opt/iij/batch-1.0.0.jar bt0007Job baseDate=${baseDate} >> /opt/iij/logs/batch/BT0007.sh.log 2>&1 &
#!/bin/sh

#---------------------------------------------------------------------
# BT0007 開始
#---------------------------------------------------------------------

# 実行時に指定された引數の數、つまり変數 $# の値が 1 でなければエラー終了。
if [ $# -ne 1 ]; then
  echo "指定された引數は「$#」個です。「バッチ日付(YYYYMMDD)」を指定してください。"
  echo "使用例:sh bt0007_start.sh 20200101"
  exit 1
fi

## 入力パラメータ ##
# バッチ日付(YYYYMMDD)
baseDate=$1
# main cmd
    VAL_PID=`ps -ef | grep "batch-1.0.0.jar" | grep -v "grep" | grep -v "$$" | wc -l `
    if [ ${VAL_PID} -ge 1 ]
    then
        echo "プロセス再確認中" > /opt/iij/logs/batch/BT0007.sh.log
        sleep 5

        VAL_PID=`ps -ef | grep "batch-1.0.0.jar" | grep -v "grep" | grep -v "$$" | wc -l `
        if [ ${VAL_PID} -ge 1 ]
        then
            MSG_INF="既にBatchは起動しています。"
            echo ${MSG_INF} >> /opt/iij/logs/batch/BT0007.sh.log
            EXIT_CODE="0"
        else
            echo "#### 「BT0007」バッチ実行開始 ####"
            echo "開始日時:"$(date +"%Y/%m/%d %H:%M:%S.%3N")

                java -jar /opt/iij/batch-1.0.0.jar bt0007Job baseDate=${baseDate} >> /opt/iij/logs/batch/BT0007.sh.log 2>&1 &
                pid=$!

                echo "#### pid = ${pid} ####"
                echo "#### バッチ実行中.......... ####"
                wait $pid

        fi
    else
        echo "#### 「BT0007」バッチ実行開始 ####"
        echo "開始日時:"$(date +"%Y/%m/%d %H:%M:%S.%3N")

            java -jar /opt/iij/batch-1.0.0.jar bt0007Job baseDate=${baseDate} >> /opt/iij/logs/batch/BT0007.sh.log 2>&1 &
            pid=$!

            echo "#### pid = ${pid} ####"
            echo "#### バッチ実行中.......... ####"
            wait $pid

        echo "終了日時:"$(date +"%Y/%m/%d %H:%M:%S.%3N")
        echo "#### 「BT0007」バッチ実行終了 ####"
    fi

# exit status
exit ${EXIT_CODE}

BT0007JobConfiguration

jobBuilderFactory.get("bt0007Job")

    /**
     * 機能概要:bt0007Job
     * @return なし
     */
    @Bean
    public Job bt0007Job() throws IOException, JobParametersInvalidException {
        return jobBuilderFactory.get("bt0007Job")
            .incrementer(new RunIdIncrementer())
            .start(bt0007GetParametersStep())
            .next(bt0007DataProcessStep())
            .next(bt0007FileCopyStep())
            .listener(bt0007Listener)
            .build();
    }

注意properties文件取得問題,在jar內部試了各種方法沒有成功,最後放在jar外部成功了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章