Spring Bootジョブ呼び出し
記事の目次 Spring Bootジョブ呼び出し サーバが起動すると、あるジョブが自動的に実行されます. サーバが起動したら、自動的にあるタスクを実行します. Springタイミングタスクの@Schduled cron表現 cron を使用しません.おすすめはCron多機能 です.実際の使用シーン Spring Bootジョブ呼び出し
サーバー起動時に自動的にタスクを実行します.
二重に書いたルン方法のパラメーターリストはあまり使われていません.
複数のタスクの指定順序があれば
このマークはSpringです.
二つの方法が実現するインターフェースは全部bootのです.
どのように複数のFilterの順序を決定しますか?
どのようにタスクの実行順序を指定しますか?
私たちはタスクを起動する時にデータベースなどの操作を追加できます.
サーバーが起動したら、自動的にタスクを実行します.
以前Springを使用していた場合、第三のコンポーネント
SpringとQuartzの統合について知る機会があります.
Bootにはstatusが内蔵されています.
実例:新規Taskクラス カスタム方法 書き方論理 クラスで@Component 方法上@Schduled `
@Schduled(cron=「0/5***?」)
public void exe(){
sout(「自動実行タスク3,時間:」+new Date();
)
`
ここに来たらどうやって起動しますか?スタートクラスに
これで起動できます.5 sごとに印刷します.
例えば5 sで一回実行します.
@Schduled(cron=「5***?」)
例えば29分5秒ごとに一回実行します.
@Schduled(cron=「5 29***?」)
Springタイミングタスクの@Schduled cron表現
1つの
順を追って
秒(0-59)
分(0-59)
時(0-23)
日(月)(0-31ですが、あなたの月の日数を考慮してください.)
月(0-11)
日(日)(1-7 1=SUNまたはSUN、MON、TUTE、WED、THU、FRI、SAT)
7年(1970-2099)
文字はすべての可能な値を表しますので、式(月)では毎月、**は分則では毎分、などを表します.
?文字は「日」(月)と「日」の2つのサブ表現にのみ使用されます.値を指定しないことを表します.2つのサブ表現のうちの1つが指定されている場合、衝突を避けるために他のサブ表現の値を設定しますか?
たとえば*のもう一つは?
**L文字は、日(月)と日(日)の2つのサブ表現に使用されます.単語「last」の誤記ですが、2つのサブ表現の意味は異なります. 天(月)サブ表現では、Lは一ヶ月の最後の日を表します. 日曜日(日曜日)のサブ表現では、Lは一週間の最後の日、つまりSAT を表します.
Lの前に具体的な内容があれば、彼は他の意味があります.
例えば
なお、Lパラメータを使用する場合は、リストや範囲を指定しないでください.これは問題になります.
/文字を使って数値の増分を指定します.
例えば、サブ表現(分)で
また、例えば、サブ表現(分)の
クロンを使わない
5000ミリ秒ごとに呼び出し(すなわち5 S)@Scheduled(fixedRate=5000)を一回呼び出します.
@Scheduled(fixedRate=5000,initial Delay=2000)は2 sを待ってから5 sごとに呼び出します.
おすすめはやはりCron多機能です.
実際の使用シーン毎日の天気予報 ユーザの誕生日にメールを送るなんて 毎晩12時に帳簿をまとめます.
もしあなたが使うSpringバージョンが3.0以上なら
サーバー起動時に自動的にタスクを実行します.
SpringBoot
は、2つの方法を提供し、1つのコンポーネント(@Component
)を作成し、ApplicationRunner
を実現するか、またはCommandLineRunner
を実装するか、あるいは、2つの方法を提供する.二重に書いたルン方法のパラメーターリストはあまり使われていません.
複数のタスクの指定順序があれば
@Order(1)
はコンポーネントに注釈を付けると順序を決定することができる.このマークはSpringです.
二つの方法が実現するインターフェースは全部bootのです.
どのように複数のFilterの順序を決定しますか?
filterName
辞書によって順次実行される.どのようにタスクの実行順序を指定しますか?
@Order
を使ってタスクの実行順序を指定します.私たちはタスクを起動する時にデータベースなどの操作を追加できます.
OneTask.java
package vip.javer.task.task;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/** * Class Describe: * * @author biuaxia * @date 2018/12/14 10:05 */
@Component
@Order(2)
public class OneTask implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("****Task===One****");
}
}
TwoTask.java
package vip.javer.task.task;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/** * Class Describe: * * @author biuaxia * @date 2018/12/14 10:05 */
@Component
@Order(1)
public class TwoTask implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("****Task===Two****");
}
}
ここでは@Order
を設定することにより順番が変更されましたので、2は先に実行し、1は後で実行します.サーバーが起動したら、自動的にタスクを実行します.
以前Springを使用していた場合、第三のコンポーネント
quartz
を使用して類似の需要を達成した.SpringとQuartzの統合について知る機会があります.
Bootにはstatusが内蔵されています.
実例:
5s
ジョブプリント出力の現在時間を呼び出します.@Schduled(cron=「0/5***?」)
public void exe(){
sout(「自動実行タスク3,時間:」+new Date();
)
`
ここに来たらどうやって起動しますか?
@EnableScheduling
を追加すればいいです.これで起動できます.5 sごとに印刷します.
例えば5 sで一回実行します.
@Schduled(cron=「5***?」)
例えば29分5秒ごとに一回実行します.
@Schduled(cron=「5 29***?」)
Springタイミングタスクの@Schduled cron表現
1つの
cron
は少なくとも6つの(7つの可能性もある)スペースで区切られた時間要素がある.順を追って
秒(0-59)
分(0-59)
時(0-23)
日(月)(0-31ですが、あなたの月の日数を考慮してください.)
月(0-11)
日(日)(1-7 1=SUNまたはSUN、MON、TUTE、WED、THU、FRI、SAT)
7年(1970-2099)
文字はすべての可能な値を表しますので、式(月)では毎月、**は分則では毎分、などを表します.
?文字は「日」(月)と「日」の2つのサブ表現にのみ使用されます.値を指定しないことを表します.2つのサブ表現のうちの1つが指定されている場合、衝突を避けるために他のサブ表現の値を設定しますか?
たとえば*のもう一つは?
**L文字は、日(月)と日(日)の2つのサブ表現に使用されます.単語「last」の誤記ですが、2つのサブ表現の意味は異なります.
Lの前に具体的な内容があれば、彼は他の意味があります.
例えば
6L
は今月の最後から六日間を表し、F R I L
は今月の最後の金曜日を表しています.なお、Lパラメータを使用する場合は、リストや範囲を指定しないでください.これは問題になります.
/文字を使って数値の増分を指定します.
例えば、サブ表現(分)で
0/15
は、0分目から15分ごとに実行されます.また、例えば、サブ表現(分)の
3/20
は、3分目から20分ごとに(3、23、43と同じ意味で)行われることを表しています.クロンを使わない
5000ミリ秒ごとに呼び出し(すなわち5 S)@Scheduled(fixedRate=5000)を一回呼び出します.
@Scheduled(fixedRate=5000,initial Delay=2000)は2 sを待ってから5 sごとに呼び出します.
おすすめはやはりCron多機能です.
実際の使用シーン
もしあなたが使うSpringバージョンが3.0以上なら
EnableScheduling
を使用できます.