Spring Boot でスケジューリング

★★★ お知らせ ★★★

◆ 6月のPS Liveは決済サービスStripeのデモ!◆
決済サービスのStripeでサブスクリプションの支払い機能を作ってみた
Stripeの機能の一部を切り出して、簡単なサブスクリプションを作るとどうなるのかを、デモをまじえてご紹介します。
⇒ 詳細はこちらから

◆【セミナー開催】 可視化ツールGrafana~初めてのダッシュボード作成◆
デモンストレーション付き!
本セミナーでは、売上データを用いて、4種類のパネル作成方法をお見せします。
⇒ お申込みはこちらから

◆ エンジニア業務環境アンケート結果 ◆
エンジニアが自分の働き方にどういったことで満足していて、不満を感じているのか、働きたい会社像として何を求めているのか、業務環境調査を実施しました。ぜひご覧ください。
⇒ アンケート結果はこちらから

こんにちは。サイオステクノロジーの木村です。
jarを定期実行したい場合、作成したjarをcronで動かすのもいいと思いますが、今回はSpring Bootのスケジューリング機能を使った方法をご紹介いたします。

@EnableScheduling

Spring Bootにてスケジューリング機能を有効にするには、EnableSchedulingアノテーションを使用します。

@Scheduled

定期的に実行したいメソッドにScheduledアノテーションをつけ、実行するタイミングを定義します。

・fixedRate:メソッドの実行開始時刻から指定されたミリ秒後に実行します。
・fixedDelay:メソッドの実行完了時刻から指定されたミリ秒後に実行します。
・initialDelay:指定されたミリ秒後に初回の実行を行います。fixedRateやfixedDelayと組み合わせて指定します。
・cron:cron式で実行タイミングを定義します。


上記の場合、起動してから5秒後に初回実行し、その後10秒おきに実行されます。

スケジュールを設定ファイルから取得する場合

実行するタイミングは設定ファイルに記載して取得することもできます。
設定ファイル(application.properties)に以下のように実行スケジュールを記載します。(名称は任意)

左から、秒 分 時 日 月 曜日
上記の場合、毎日9時0分0秒に実行されます。

Scheduledアノテーションにて設定ファイルより値を取得するため以下のように記載します。

実装例

例として、日次(毎朝9時)と月次(毎月1日)でメールを送信する処理を実装します。

とても簡単にスケジューリング機能が実装できました。みなさんも是非つかってみてください。

アバター画像
About 木村 23 Articles
Azureなどのクラウドでの稼働を主としたアプリケーション開発を行なっています。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる