リモートデータ収集タスクをタイミング

パッケージcom.sf.XWFS.task;

輸入com.alibaba.fastjson.JSONArray;
輸入com.alibaba.fastjson.JSONObject。
輸入com.sf.XWFS.domain.OrderDO;
輸入com.sf.XWFS.domain.YHOrderDO;
輸入com.sf.XWFS.mapper.YHOrderMapper。
輸入com.sf.XWFS.service.OrderService。
輸入com.sf.XWFS.service.YHOrderService。
輸入io.jsonwebtoken.lang.Collections。
輸入io.swagger.annotations.Api;
輸入org.apache.commons.collections.map.HashedMap;
輸入org.slf4j.Logger。
輸入org.slf4j.LoggerFactory;
輸入org.springframework.scheduling.annotation.Scheduled;
輸入org.springframework.scheduling.config.ScheduledTask。
輸入org.springframework.stereotype.Component。
輸入org.springframework.web.bind.annotation.RequestMapping。
輸入org.springframework.web.bind.annotation.RestController。

輸入java.utilの。*;

/ **
*ご注文のスケジュールタイマータスク要求航海
* @authorのpuxiaozhe
* @date 2019年5月7日
* /

@Component
パブリッククラスSchedulerTask {

プライベートロガーロガー= LoggerFactory.getLogger(SchedulerTask.class)。

プライベートOrderServiceのOrderServiceの。

プライベートYHOrderService yhOrderService。

/ *
*データベース航海からのデータの取得
*
* /
@Scheduled(fixedRate = 60000)
公共ボイドrefreshOrder(){

logger.info(「航海データからの受注を獲得し始めて-----> [更新を開始」);

OrderServiceの=(OrderServiceの)ApplicationContextUtil.getBean( "orderServiceImpl")。
yhOrderService =(YHOrderService)ApplicationContextUtil.getBean( "YHOrderServiceImpl")。

//記録システムの開始時間
ロングスタート=にSystem.currentTimeMillisを();
条の//数
= 50のpageSize int型;
//オフセット
int型PageStart = 0;
//ほとんどのクエリ
int型maxTimes = 50;
//最初のクエリ時間
のint = 0 queryTimes;
falseにブール= ISSTOP。

ハッシュマップの<string、オブジェクト> PARAM =新しいハッシュマップの<string、オブジェクト>();

{試し
//クエリ50倍、2500合計
param.put( "のpageSize"のpageSize);
//ソート
param.put( "ORDERBY"、 "IDの ASC")。

一方、(queryTimes ++ <= maxTimes){
param.put( "pageStart"、pageStart)。
{試す
一覧<地図<文字列、オブジェクト見る>>を=新しいのArrayList <地図<文字列、オブジェクト>>();
地図<文字列、オブジェクト>マップ=新HashedMap();
List.add(マップ)
一覧<地図<文字列、オブジェクト>> YHOrderList = yhOrderService.queryYHOrder(リスト、PARAM)。

IF(Collections.isEmpty(YHOrderList)){
logger.info( "第一" + queryTimes + "データに空のクエリ");
BREAK;
}
logger.info( "第一" + queryTimes + "クエリを記録する:" + YHOrderList .size());
IF(YHOrderList.size()<50){
trueにISSTOP =;
}
//ローカルライン航海にデータを保存
)YHOrderList(セーブ;
}キャッチ(例外EX){
trueにISSTOP =;
logger.error( ""、EX);
}
//注文データを更新する必要がない
(ISSTOP){IF
BREAKを;
}
//フリップ
PageStart + =のpageSize;
}
}キャッチ(例外EX){
logger.errorは(「航海からの注文を取得しますデータ異常"EX);
} {最後に
(logger.info"処理航海端から取得終了----->注文データ、:「+(システム。currentTimeMillis() - スタート)+ "MS");

}
}

/ **
* Fiの認証タイムアウト
* /
// @Scheduled(fixedRate = 60000)
//公共ボイドNetworkConnection(){
//
// logger.info( "スタート----->サーバーは接続状態を検出するために開始します" );
//
// OrderServiceの=(OrderServiceの)ApplicationContextUtil.getBean( "OrderServiceImpl");
// yhOrderService =(YHOrderService)ApplicationContextUtil.getBean( "YHOrderServiceImpl");
//
// //記録システムの開始時刻
//長い開始System.currentTimeMillis =();
// //実行時間SQL録音
//ロングexecuteTimes = 0;
// //フラグ中断
// = ISSTOP偽ブールにし;
//試み{
//しばらく(executeTimes ++ <= 60000 ){
//試し{
//リスト<地図<文字列、オブジェクトリスト>>新新=のArrayList <地図<文字列、オブジェクト>>();
地図// <文字列、オブジェクト> =新新HashedMapマップ();
// List.add(マップ);
//リスト<地図<文字列、オブジェクト>> YHOrderList = yhOrderService.queryYHOrder(リスト、PARAM);
// IF( Collections.isEmpty(YHOrderList)){
//// logger.info( "第一" + queryTimes + "データに空のクエリ");
// BREAK;
//}
+ //// logger.info( "第一" "クエリを記録する:" queryTimes +; + YHOrderList.size())
// IF(YHOrderList.size()<50){
// = ISSTOP trueに;
//}
//}キャッチ(例外EX){
// ISSTOP真へ=;
// logger.error( ""、EX);
//}
// //ネットワーク中断···
// IF(ISSTOP){
//ブレーク;
//}
//}
//}キャッチ(例外EX){
// logger.error( "例外ネットワーク接続"、EX)。
// } 最後に {
// logger.info( "端----->加工総検出ネットワーク接続:" +(のSystem.currentTimeMillis() -スタート)+ "MS");
//}
//}


/ **
*更新到本地数据库
* @param YHOrderList
* /
//ます。private void updateToDateBase(一覧<地図<文字列、オブジェクト>> YHOrderList){
//
//試し{
//(YHOrderList == nullの|| YHOrderList場合。サイズ()== 0){
返す; //
//}
//地図<文字列、リスト<OrderDO >>マップ=新しいHashMapの<文字列、リスト<OrderDO >>();
//リスト<OrderDO>リスト=新しいのArrayList <OrderDO>();
//
// YHOrderList.forEach(jsonObj - > {
// JSONObject JSON =(JSONObject)jsonObj;
//!IF(json.get( "エラー")= NULL){
返す; //
//}
//
//文字列ID = json.getString( "ID");
//文字列khxm = json.getString( "khxm");
//文字列DH = JSON。
ストリング= json.getString shdz //( "shdz");
//
// OrderDO新しい新しいOrderDOオーダー=();
// order.setOrderid(上記IDを述べ);
// order.setdContact(khxm);
// order.setdTel( DH);
// order.setdAddress(shdz);
// List.add(注文);
//});
// map.put( "一覧"、リスト);
// //ローカルに保存
//整数休息yhOrderService.saveYHOrder =(一覧);
// logger.info( "正常データベースに航海オーダデータを保存し、" REST +);
//}キャッチ(例外EX){
// logger.error( "航海を保存するデータ線異常" 、EX);
//}
//}

 

/ **
*ローカルデータベースに保存する
* @paramオーダーリスト
* /
公共のボイド保存(一覧<地図<文字列、オブジェクト>>オーダーリスト){

//注文航海データの一括保存
yhOrderService.batchSaveYHOrder(オーダーリストを)。

}

}

おすすめ

転載: www.cnblogs.com/pxzbky/p/10995003.html