ホームページ Java &#&チュートリアル Spring に基づいた最も単純なスケジュールされたタスクの実装と構成に基づいた cron 式の関連コンテンツ

Spring に基づいた最も単純なスケジュールされたタスクの実装と構成に基づいた cron 式の関連コンテンツ

Jun 22, 2017 am 11:32 AM
spring タスク に基づく タイミング

当初、この記事はこのシリーズの最初の 2 つの記事と一緒に公開される予定でした。しかし、昨日情報を調べてまとめているときにアクシデントに遭遇したので、少し延期してしまいました。

この記事の内容は主にこのブログ投稿 (cron 表現で 1 位にランクされている Baidu 検索リンク) を参照しています。他の人とはちょっと違うことを書いてみてください。ただし、内容はほとんど同じです。

例から始めましょう:

「0 0 10,14,16 * *?」とはどういう意味ですか?

まず、Cron 式は文字列であるため、文字列は 5 つまたは 6 つのスペースで区切られ、6 つまたは 7 つのフィールドに分割されます。Cron には次の 2 つの構文形式があります:

時間 Dayofmonth Month Dayofweek Year または
Seconds MINUTES HOURS DAYOFMONTH MONTH MONTH DAYOFWEEK

" 10 , 14, 16 here "," はリスト、列挙を意味し、10、14、16 時間に達するたびに実行されることを意味します、次の * は、分単位でドメインが * を使用している場合、このフィールドに一致する任意の値を意味することを意味します。これは、イベントが 1 分ごとにトリガーされることを意味します。

「0 0 10,14,16 * * ?」の最後の「?」は、DayofMonth と DayofWeek の 2 つのフィールドでのみ使用できます。また、ドメインの任意の値とも一致しますが、一致しません。 DayofMonth と DayofWeek は相互に影響を与えるためです。たとえば、毎月 20 日にスケジュールをトリガーする場合、20 日が何曜日であっても、次の記述のみを使用できます: 13 13 15 20 * ? (最後の数字のみ使用可能) ? , ただし、* は使用できません。* を使用すると、曜日に関係なくトリガーされることを意味しますが、実際はそうではありません。

つまり、「 0 0 10,14,16 * * ? 」は、毎日 10 時、14 時、16 時にトリガーされることを意味します。

それでは、次の質問です:

「0 0/30 9-17 * * ?」

この式では、前の式と比べて記号が 2 つ増えています。1 つは「/」、もう 1 つは「 -」。それらの意味は次のとおりです:

"-": 範囲を示します。たとえば、[分] フィールドで 5-20 を使用すると、5 分から 20 分まで 1 分ごとにトリガーされることを意味します
"/": トリガーが開始時刻から開始されることを示しますたとえば、[分] フィールドで 5/20 を使用すると、5 分ごとに 1 回、25 分、45 分ごとに 1 回トリガーされることを意味します。

したがって、ここでは「0/30」 「」は0分から30分ごとを意味します 1分に1回実行されます。また、「9-17」は範囲を示します。つまり、9 時から 17 時までに実行されます。まとめると、「0 0/30 9-17 * * ?」ということは、毎日9時から17時まで30分ごとに実行されることを意味します。题 続けて、次の質問です。

ここの式には、水曜日の略語である「WED」が追加されています。これはテスト結果です。 (テストしやすいように、時間を 10 秒ごとに変更します)

この記事の残りの cron 式は、前の 2 つの記事のスケジュールされたタスクでテストおよび検証できます。残りの式は 1 つずつ分析されません。以下は、いくつかの質問に答えることを期待して原文を引用します:

1. Cron 式の内容分析

Cron 式は文字列であり、文字列は 5 つまたは 6 つのスペースで区切られ、6 つまたは 7 つに分割されます。 Cron には次の 2 つの文法形式があります:

Seconds Minuteshour DayofMonth Month DayofWeek Year または

Seconds Minuteshour DayofMonth Month DayofWeek
各フィールドに使用できる文字は次のとおりです。秒: 4 つの文字「, - * /」を使用でき、有効な範囲は 0 ~ 59 の整数です。

分: 4 つの文字「, - * /」を使用でき、有効な範囲は 0 ~ 59 の整数です。

時間: ", - * /" 4 文字、有効範囲 0 ~ 23 の整数を出現可能
DayofMonth: 出現可能 ", - * / ? L W C" 8 文字、有効範囲 0-31 の整数
Month: 出現可能", - * / "4 文字、有効範囲 1 ~ 12 の整数、または JAN-DEc
DayofWeek: 表示可能 ", - * / ? L C #" 4 文字、有効範囲 1- の整数7 または SUN-SAT の 2 つの範囲。 1 は日曜日を意味し、2 は月曜日を意味します。以下同様です。
年: 4 つの文字「, - * /」を使用できます。有効な範囲は 1970 年から 2099 年です。ただし、次の特殊文字も使用できます。意味は次のとおりです:
(1)*: このフィールドの任意の値と一致することを示します。 * が Minutes フィールドで使用されている場合、イベントが 1 分ごとにトリガーされることを意味します。

(2)?: DayofMonth フィールドと DayofWeek フィールドでのみ使用できます。また、ドメインの任意の値とも一致しますが、一致しません。 DayofMonth と DayofWeek は相互に影響を与えるためです。たとえば、毎月 20 日にスケジュールをトリガーする場合、20 日が何曜日であっても、次の記述のみを使用できます: 13 13 15 20 * ? (最後の数字のみ使用可能) ? , ただし、* は使用できません。* を使用すると、曜日に関係なくトリガーされることを意味しますが、実際はそうではありません。

(3)-: 範囲を示します。たとえば、[分] フィールドで 5-20 を使用すると、5 分から 20 分まで毎分トリガーすることを意味します。一定の間隔で、たとえば、[分] フィールドに 5/20 を使用すると、5 分ごとに 1 回トリガーされ、25 分、45 分ごとに 1 回トリガーされることを意味します。

(5),: は列挙値をリストすることを意味します。たとえば、[分] フィールドに 5,20 を使用すると、毎分 5 分と 20 分にトリガーされることを意味します。

(6)L: 最後を意味し、DayofWeek フィールドと DayofMonth フィールドにのみ表示できます。DayofWeek フィールドで 5L が使用されている場合、最後の木曜日にトリガーされることを意味します。

(7)W: 有効な営業日 (月曜日から金曜日) を示します。これは DayofMonth フィールドにのみ表示され、指定された日付に最も近い有効な営業日にイベントがトリガーされます。たとえば、DayofMonth に 5W を使用すると、5 日が土曜日の場合、最も近い営業日、つまり 4 日の金曜日にトリガーされます。 5 日が日曜日の場合は 6 日(月曜日)にトリガーされ、5 日が月曜日から金曜日のいずれかの場合は 5 日にトリガーされます。もう 1 つの点は、W の最新の検索は月にまたがることはありません

(8)LW: これら 2 つの文字を一緒に使用して、特定の月の最後の営業日、つまり最後の金曜日を示すことができます。

(9)#: 各月の曜日を決定するために使用され、DayofMonth フィールドにのみ表示されます。例えば4#2では、ある月の第2水曜日を指します。

いくつかの例:

0 0 2 1 * ? * は毎月 1 日の午前 2 時にタスクをスケジュールすることを意味します

0 15 10 ? * MON-FRI は月曜日から金曜日まで毎日午前 10 時 15 分にジョブを実行することを意味しますFriday
0 15 10 ? 6L 2002-2006 は、2002 年から 2006 年までの毎月の最終金曜日の午前 10 時 15 分に操作を実行することを意味します。 cron 式には、スペースで区切られた少なくとも 6 つ (おそらく 7 つ) の時刻要素が含まれます。
順序:
秒 (0~59)

分 (0~59)

時間 (0~23)
日 (月) (0~31 ただし、月の日数を考慮する必要があります)
月(0~11)
日(週) (1~7 1=SUNまたはSUN、MON、TUE、WED、THU、FRI、SAT)
年(1970-2099)

各要素は値(例: 6) 、連続間隔 (9-12)、間隔 (8-18/4) (/ は 4 時間ごとを意味します)、リスト (1、3、5)、ワイルドカード。 2 つの要素「日」と「曜日」は相互に排他的であるため、どちらかを設定する必要があります。


一部の部分式には範囲またはリストを含めることができます

例: 部分式 式 (day (週)) は、「月-金」、「月、水、金」、「月-水、土」です

「*」文字はすべての可能な値を表します

したがって、「*」はサブにあります- 式(month)は各月の意味を表し、部分式(day(week))の「*」は各曜日を表します

「/」文字は、月の増分を指定するために使用されます。値

例: 式 (分) の部分式「0/15」は、0 分から開始することを意味し、15 分ごと

部分式 (分) の「3/20」は、3 番目から開始することを意味します分、20 分ごと (それと「3、23、43」) は同じ意味です


「?」文字は、日 (月) と日 (週) の 2 つの部分式でのみ使用され、次のことを示します。値が指定されていません
2 つの部分式のいずれかが次の場合、競合を避けるために、別の部分式の値を「?」に設定する必要があります

「L」文字は、単語である day (month) と day (week) の 2 つの部分式。「last」の略語

ですが、2 つの部分式の意味は異なります。
日(月)の部分表現では、「L」は月の最終日を表します
日(週)の自己表現では、「L」は週の最後の日、つまりSATを表します

「L」の前に特定の内容がある場合は別の意味になります

例:「6L」は今月の月末から6日目、「FRIL」は今月の最終金曜日を意味します
注:「」を使用する場合は、 L" パラメータ。問題が発生する可能性があるため、リストまたは範囲を指定しないでください。

フィールドで許可される値 許可される特殊文字

秒 0-59 、 - * /

分 0-59 、 - * /
時間 0-23 、 - * /

日付 1 ~ 31、 - * ? / L W C

月 1 ~ 12 または 1 月 ~ 12 月、 - * /
週 1 ~ 7 または SUN ~ SAT、 - * / L C #
年 (オプション) , 1970-2099 , - * /



2. cron 式の例:

「0 0 12 * * ?」 毎日正午にトリガー
「0 15 10 ? * *」 毎日午前 10 時 15 分にトリガー
「0 15 10 * * ?」 「0 15 10 * * ? *」 毎日午前 10 時 15 分にトリガーされます
「0 15 10 * * ? 2005」 2005 年の毎日午前 10 時 15 分にトリガーされます
「0 * 14 * * ?」午後 2 時から午後 2 時 59 分まで 1 分ごとにトリガーします
「0 0/5 14 * * ?」 毎日午後 2 時から午後 2 時 55 分まで 5 分ごとにトリガーします
「0 0/5 14,18 * * ?」毎日午後 2 時から午後 2 時 55 分まで 午後 2 時 55 分から午後 6 時 55 分まで 5 分ごとにトリガーします
"0 0-5 14 * * ?" 毎日午後 2 時から午後 2 時 05 分まで 1 分ごとにトリガーします
"0 10, 44 14 ? 3 WED」は、3 月の毎週水曜日の午後 2 時 10 分と 2 時 44 分にトリガーされます
「0 15 10 ? * MON-FRI」は月曜日から金曜日の午前 10 時 15 分にトリガーされます
「0 15 10 15 * ? 「毎月 15 日の午前 10 時 15 分にトリガーされます
「0 15 10 L * ?」 毎月末日の午前 10 時 15 分にトリガーされます
「0 15 10 * 6L」 午前 10 時 15 分にトリガーされます毎月最終金曜日
「0 15 10 ? * 6L 2002-2005」 2002 年から 2005 年まで毎月最終金曜日の午前 10 時 15 分にトリガーされます
「0 15 10 ? * 6#3」 10 時にトリガーされます毎月第 3 金曜日の午前: 15 トリガー

以上がSpring に基づいた最も単純なスケジュールされたタスクの実装と構成に基づいた cron 式の関連コンテンツの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Goat Simulator 3 でホラーコリドーミッションを完了する方法 Goat Simulator 3 でホラーコリドーミッションを完了する方法 Feb 25, 2024 pm 03:40 PM

恐怖の回廊は Goat Simulator 3 のミッションです。どのようにしてこのミッションを完了できますか? 詳細なクリア方法と対応するプロセスをマスターし、このミッションの対応する課題を完了できるようにしてください。以下を実行すると、Goat Simulator 3 の恐怖回廊が表示されます。関連情報を学ぶためのガイド。 Goat Simulator 3 Terror Corridor Guide 1. まず、プレイヤーはマップの左上隅にあるサイレントヒルに行く必要があります。 2. ここには屋上に「RESTSTOP」と書かれた家があり、プレイヤーはヤギを操作してこの家に入る必要があります。 3. 部屋に入ったら、まず直進して右に曲がり、突き当りにドアがありますので、そこから直接お入りください。 4. 入ったら、まず前に歩いてから右に曲がる必要があります。ここのドアに到達すると、ドアが閉まります。戻って見つけてください。

Goat Simulator 3 で帝国の墓ミッションをクリアする方法 Goat Simulator 3 で帝国の墓ミッションをクリアする方法 Mar 11, 2024 pm 01:10 PM

Goat Simulator 3 は、古典的なシミュレーション ゲームプレイを備えたゲームで、プレイヤーはカジュアル アクション シミュレーションの楽しさを十分に体験できます。ゲームには多くのエキサイティングな特別なタスクも用意されています。その中でも、Goat Simulator 3 帝国の墓のタスクでは、プレイヤーは鐘楼を見つける必要があります。プレイヤーの中には、3 つの時計を同時に操作する方法がわからない人もいます。Goat Simulator 3 の Tomb of the Tomb ミッションのガイドは次のとおりです! Goat Simulator 3 の Tomb of the Tomb ミッションのガイドは、鐘を鳴らすことです。順番に。詳細な手順の拡張 1. まず、プレイヤーはマップを開いて梧丘墓地に行く必要があります。 2.鐘楼に上がると、中には鐘が3つあります。 3. 次に、大きいものから小さいものの順に、222312312 の類似度をたどります。 4. ノックが完了したら、ミッションを完了し、ドアを開けてライトセーバーを入手できます。

Goat Simulator 3 でスティーブ救出ミッションを実行する方法 Goat Simulator 3 でスティーブ救出ミッションを実行する方法 Feb 25, 2024 pm 03:34 PM

スティーブの救出は、Goat Simulator 3 のユニークなタスクです。それを完了するには、具体的に何をする必要がありますか? このタスクは比較的単純ですが、意味を誤解しないように注意する必要があります。ここでは、Goat のスティーブの救出について説明します。 Simulator 3 のタスク戦略は、関連タスクをより効率的に完了するのに役立ちます。 Goat Simulator 3 スティーブ救出ミッション 攻略 1. まずはマップ右下の温泉に来ます。 2. 温泉に到着したら、スティーブを救出するタスクをトリガーできます。 3. 温泉にはスティーブという男性がいますが、このミッションの対象ではありません。 4. この温泉でスティーブという名前の魚を見つけて陸に上げてこのタスクを完了します。

Spring Boot と OpenAI の出会いによる新しいプログラミング パラダイム Spring Boot と OpenAI の出会いによる新しいプログラミング パラダイム Feb 01, 2024 pm 09:18 PM

2023年、AI技術が注目を集め、プログラミング分野を中心にさまざまな業界に大きな影響を与えています。 AI テクノロジーの重要性に対する人々の認識はますます高まっており、Spring コミュニティも例外ではありません。 GenAI (汎用人工知能) テクノロジーの継続的な進歩に伴い、AI 機能を備えたアプリケーションの作成を簡素化することが重要かつ緊急になっています。このような背景から、AI 機能アプリケーションの開発プロセスを簡素化し、シンプルかつ直観的にし、不必要な複雑さを回避することを目的とした「SpringAI」が登場しました。 「SpringAI」により、開発者はAI機能を搭載したアプリケーションをより簡単に構築でき、使いやすく、操作しやすくなります。

Douyin ファン グループのタスクはどこで見つけられますか? Douyinファンクラブのレベルは下がりますか? Douyin ファン グループのタスクはどこで見つけられますか? Douyinファンクラブのレベルは下がりますか? Mar 07, 2024 pm 05:25 PM

TikTok は、現在最も人気のあるソーシャル メディア プラットフォームの 1 つとして、多くのユーザーが参加しています。 Douyin には、ユーザーが特定の報酬や特典を得るために完了できるファン グループのタスクが多数あります。では、Douyin ファンクラブのタスクはどこで見つけられるのでしょうか? 1.Douyin ファンクラブのタスクはどこで確認できますか? Douyin ファン グループのタスクを見つけるには、Douyin の個人ホームページにアクセスする必要があります。ホームページに「ファンクラブ」という項目があります。このオプションをクリックすると、参加しているファン グループと関連タスクを参照できます。ファンクラブのタスク欄には、「いいね!」、コメント、共有、転送など、さまざまな種類のタスクが表示されます。各タスクには対応する報酬と要件があり、通常、タスクを完了すると、一定量の金貨または経験値を受け取ります。

Spring Boot と Spring AI を使用して生成人工知能アプリケーションを構築する Spring Boot と Spring AI を使用して生成人工知能アプリケーションを構築する Apr 28, 2024 am 11:46 AM

Spring+AI は業界リーダーとして、強力で柔軟な API と高度な機能を通じてさまざまな業界に最先端のソリューションを提供します。このトピックでは、さまざまな分野での Spring+AI の応用例を詳しく掘り下げ、Spring+AI がどのように特定のニーズを満たし、目標を達成し、これらの教訓をより広範囲のアプリケーションに拡張するかを示します。このトピックが Spring+AI の無限の可能性をより深く理解し、活用するきっかけになれば幸いです。 Spring フレームワークはソフトウェア開発の分野で 20 年以上の歴史があり、Spring Boot 1.0 バージョンがリリースされてから 10 年が経過しました。今、その春に異論を唱える人はいない

Springプログラマティックトランザクションの実装方法は何ですか? Springプログラマティックトランザクションの実装方法は何ですか? Jan 08, 2024 am 10:23 AM

Spring プログラムによるトランザクションを実装する方法: 1. TransactionTemplate を使用する; 2. TransactionCallback および TransactionCallbackWithoutResult を使用する; 3. Transactional アノテーションを使用する; 4. TransactionTemplate を @Transactional と組み合わせて使用​​する; 5. トランザクション マネージャーをカスタマイズする。

Win11 のスケジュールされたシャットダウンを設定する方法を教えます Win11 のスケジュールされたシャットダウンを設定する方法を教えます Jan 06, 2024 pm 07:14 PM

場合によっては、ダウンロードを続行したり、特定のプログラムを許可したりするために、一定期間コンピューターを離れる必要があり、操作が完了した後にシャットダウンしたい場合があります。では、win11 でスケジュールされたシャットダウンを設定するにはどうすればよいでしょうか?シャットダウンコマンドを使用します。 win11 でスケジュールされたシャットダウンを設定する方法: 1. まず、左下隅のスタート メニューを右クリックし、[ファイル名を指定して実行] を開きます。 2. 次に、「shutdown-s-t7200」と入力し、Enter キーを押して実行します。 (ここでの 7200 はスケジュールされたシャットダウン時間 (秒単位)、7200 は 2 時間後のシャットダウンです) 3. このようにして、スケジュールされたシャットダウンの設定が完了します。 4. スケジュールされたシャットダウンをキャンセルする場合は、「shutdown-a」と入力して Enter キーを押します。 5. 確認後、スケジュールされたシャットダウンをキャンセルできます。

See all articles