フレームと春に比べ、簡単な構成により、スプリングブーツは、時限タスク簡単なの作成を行います。これは、コメントを対応するタスクのそれぞれの開弁時期を介して操作することができます。
1.プラス春ブーツノートを開始するようにタイミングタスクを開く@EnableScheuling
@SpringBootApplication @成分 @ComponentScan @EnableScheduling パブリッククラスサーバアプリケーション{ プライベート静的最終ロガーロガー= LoggerFactory.getLogger( "adminLogger"); パブリック静的無効メイン(文字列[] args){ SpringApplicationアプリ=新しいSpringApplication(ServerApplication.class)。 app.addListeners(新しいStartApplicationListener()); app.run(引数)。 } @Scheduled(クーロン= "20 46 11 * *?") ます。public void timerToNow(){ AditionService aditionService =(AditionService)SpringUtil.getBean(AditionService.class)。 基地応答aditionService.timerToNow RES =(); logger.info(res.toString())。 } }
2.定期的なタスクのコメントを定義します@Scheduled
ここではパラメータ内でこのコメントを説明するために、代表される各パラメータの値は以下のとおりです。秒、分、時間、日、月、週。
そこでここでは午前11時46分20秒で、タスク実行タイミングの私の定義があります。(){}ます。public void timerToNowであなたのロジック・アプローチで定義された方法は、ここで私はヶ月前に定義された時間のデータを取得する必要があり、対応するデータテーブルの内側を削除します。
@成分 パブリッククラスAditionService { @Autowired プライベートPayAcceptOrderOldMapper acceptOrderOldMapper。 @Autowired プライベートPayAcceptOrderMapper acceptOrderMapper。 @Transactional 公衆基地応答timerToNow(){ PayAcceptOrderOld payAcceptOrderOld =新しいPayAcceptOrderOld(); INTフラグ= acceptOrderOldMapper.insertAddition(payAcceptOrderOld)。 delfalg acceptOrderMapper.deleteMonthData = INT(); IF(フラグ== delfalg){ System.out.println( "adminadminです"); リターンBaseResponse.success(); }他{ (「ビジネスの追加に失敗しました」)新しいのRuntimeExceptionを投げます。 } } }
あなたがマルチテーブル操作している場合、注釈取引に必ず、間違った時に適切な例外を投げることに留意すべきです。
第二に、私は、同時に別のテーブルにデータ・テーブル・データの最初の30日間についての問合せを追加し、対応するテーブル内のデータを削除したいと思います。実際には、それは私がコードの実行を持っているものです。
INSERT INTO SELECT pay_accept_order_old トン。*、GETDATE() から pay_accept_orderトン WHERE t.last_updated_time <= DATEADD(日、-30、GETDATE())
30日前orderoldテーブルへのデータの挿入クエリオーダー。そのため関係MyBatisの、以下の記号を私に直接の代わりに、エスケープ文字の。
<削除のid = "deleteMonthData"> last_updated_time <= DATEADD(日、-30、GETDATE())pay_accept_orderから削除 </削除>
動作条件、失敗したトランザクションのロールバックの両方の決意を比較することによって、30日間に対応するデータ、データの番号を削除します。
複雑な構成を比較すると、springbootは同じ結果に到達するために、少量で配置されています。