私のシステムには次のcron式があります。
0 0 0/1 1/1 * ? *
そして、あなたは何を知っていますか?どういう意味かわかりません。それを書いた人は彼の次の2週間の休暇にいるので、私は自分で見つける必要があります。ドキュメントは次の場所にあります ここ
documentation によると:
* * * * * * *
| | | | | | |
| | | | | | +-- Year (range: 1970-2099)
| | | | | +---- Day of the Week (range: 1-7 or Sun-SAT)
| | | | +------ Month of the Year (range: 0-11 or JAN-DEC)
| | | +-------- Day of the Month (range: 1-31)
| | +---------- Hour (range: 0-23)
| +------------ Minute (range: 0-59)
+-------------- Second (range: 0-59)
わかりました、私が考えていることをお話ししましょう:この表現は以下を意味すると信じています:
start when:
seconds: 0
minutes: 0
hours: 0
dayOfMonth 1
monthOfYear any
dayOfWeek any
year any
run every:
1 hour
1 dayOfWeek
when:
dayOfWeek same as on first execution
ただし、利用可能なcron式モニターは、それが単に1時間ごとを意味すると言っています。 Senior Java Devであると書いているので、彼は次の代わりにそのような表現を書く理由を知っているはずです:
0 0 * * * * *
org.springframework.scheduling.quartz.QuartzJobBean
を使用します。
短い要約
さて、私の質問は:0 0 0/1 1/1 * ? *
と0 0 * * * * *
の違いは何ですか?
編集:
ドキュメント はここにあります。
0/1
は、時間0
から開始し、1
時間ごとに繰り返すことを意味します1/1
はその月の最初の日から始まり、1
日ごとに実行されます
したがって、このパターンはcronを1時間に1回実行し、月の1日を開始し、毎日繰り返します
dayOfWeek
またはdayOfMonth
のいずれかで?
を使用する必要があります。
曜日と日付の両方の値を指定するためのサポートは完全ではありません(現在、これらのフィールドの1つで「?
」文字を使用する必要があります)。 – 7分前のxenteros
次に、0 0 * * * ? *
(および0 0 * * * *
ではなく、コメントした?
は必須)は同じ式になります。秒と分を無視して、他の要素の各値を取得し、毎時および毎日実行します。
あなたの情報によると:
0 0 0/1 1/1 * ? *
| | | | | | |
| | | | | | +-- Year (range: 1970-2099)
| | | | | +---- Day of the Week (range: 1-7 or Sun-SAT)
| | | | +------ Month of the Year (range: 0-11 or JAN-DEC)
| | | +--------- Day of the Month (range: 1-31)
| | +------------- Hour (range: 0-23)
| +---------------- Minute (range: 0-59)
+------------------ Second (range: 0-59)
そして この説明 の特殊文字:
*
(「すべての値」)
フィールド内のすべての値を選択するために使用されます。たとえば、分フィールドの「」は*「毎分」を意味します。
?
(「特定の値なし」)
文字が許可されている2つのフィールドのいずれかで何かを指定する必要があるが、もう一方は指定できない場合に役立ちます。たとえば、月の特定の日(たとえば、10日)にトリガーを起動したいが、何の曜日かは気にしない場合は、曜日に「10」を入れます。 -月フィールド、および「?」曜日フィールド。
/
増分を指定するために使用されます。たとえば、秒フィールドの「0/15」は「秒0、15、30、45」を意味します。また、秒フィールドの「5/15」は、「秒5、20、35、50」を意味します。また、「」文字の後に「/」を指定することもできます。この場合、「」は「/」の前に「0」があることと同じです。 「日」フィールドの「1/3」は、「月の最初の日から3日ごとに起動する」ことを意味します。
*
と?
の違い式の中の?
と*
の違いを説明するために、最初に次の表を見てください。
Field Name Mandatory Allowed Values Allowed Special Characters
Seconds YES 0-59 , - * /
Minutes YES 0-59 , - * /
Hours YES 0-23 , - * /
Day of month YES 1-31 , - * ? / L W //allowed '?'
Month YES 1-12 or JAN-DEC , - * /
Day of week YES 1-7 or Sun-SAT , - * ? / L # //allowed '?'
Year NO empty, 1970-2099 , - * /
ご覧のとおり、?
はDay of month
でのみ許可され、Day of week
は両方のフィールドのいずれかで必須であり、この値が定義されていないことをQuartzに通知するため、他のフィールドを使用します( ?
をDay of month
に入れると、使用される値はDay of week
になります。
0 0 * * * ? *
と0 0 0/1 1/1 * ? *
の間に実質的な違いはありません
異なるマークの分析:0/1
と*
は数時間-最初は毎日0時間から始まり、毎時間繰り返す、2番目は1時間ごとに繰り返す1/1
および*
(日数)-fisrtは月の最初の日から始まり、毎日繰り返すことを意味し、2番目は毎日を意味します。
誰かが複雑な式を使用した理由は、テストによって式がこのフォームに評価され、誰もそれを簡略化する仕事を引き受けなかった、または以前のcronバージョンが異なって機能したためであると考えられます。
答えではなく、@ jocの正しい答えを更新しただけです。
今のところ、 QuartzScheduler具体的に は?
は、次の2つの位置のいずれかに適用できます:day_of_month
またはday_of_week
。
曜日と日付の両方の値を指定するためのサポートは完全ではありません(現在、これらのフィールドの1つで「?」文字を使用する必要があります)。
上記のリンクのほかにも、独自の方法を思い付くのに十分なガイドとなる多くの例があります。
+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+
| **Expression** | **Meaning** |
+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+
| 0 0 12 * * ? | Fire at 12pm (noon) every day |
| 0 15 10 ? * * | Fire at 10:15am every day |
| 0 15 10 * * ? | Fire at 10:15am every day |
| 0 15 10 * * ? * | Fire at 10:15am every day |
| 0 15 10 * * ? 2005 | Fire at 10:15am every day during the year 2005 |
| 0 * 14 * * ? | Fire every minute starting at 2pm and ending at 2:59pm, every day |
| 0 0/5 14 * * ? | Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day |
| 0 0/5 14,18 * * ? | Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day |
+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+