Tôi có biểu thức cron sau trong hệ thống của mình:Có sự khác biệt nào không? và * trong các biểu thức cron? Ví dụ lạ
0 0 0/1 1/1 * ? *
và bạn biết không? Tôi chẳng biết nó có nghĩa là gì. Anh chàng đã viết nó vào kỳ nghỉ của mình trong 2 tuần tới vì vậy tôi phải tự mình tìm ra. Các tài liệu có thể được tìm thấy here
Theo documentation ta có:
* * * * * * *
| | | | | | |
| | | | | | +-- 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)
Ok, hãy để tôi nói cho bạn biết những gì tôi nghĩ: Tôi tin rằng biểu thức có nghĩa là:
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
Tuy nhiên có sẵn cron biểu hiện màn hình nói rằng nó chỉ đơn giản có nghĩa là mỗi giờ. Là một trong những người đã viết rằng là Senior Java Dev, ông hẳn phải biết lý do nào đó để viết các biểu hiện như vậy thay vì:
0 0 * * * * *
Chúng tôi sử dụng org.springframework.scheduling.quartz.QuartzJobBean
.
tóm tắt ngắn
Vâng, tôi nghĩ rằng câu hỏi của tôi là: sự khác biệt giữa 0 0 0/1 1/1 * ? *
và 0 0 * * * * *
là gì?
Edit:
The documentation có thể được tìm thấy ở đây.
biểu thức này được viết bao nhiêu lần trước đây? có thể có những hạn chế trong các ký tự đặc biệt được phép trong thạch anh khi nó được tạo ra từ – joc
@joc từ lâu, và có vẻ như, có một yêu cầu để sử dụng '?' trong một ngàyOfWeek và dayOfMonth: 'Hỗ trợ cho việc xác định cả ngày tuần và giá trị theo ngày không hoàn thành (hiện tại bạn phải sử dụng ký tự '?' trong một trong các trường này). ' – xenteros
nice catch !! Tôi không biết điều đó, nhưng như bạn đã nói trong câu hỏi '0 0 * *? * 'là một biểu thức tương đương với' 0 0 0/1 1/1 *? * 'IMO ít nhất là ngày nay – joc