2012-02-10 2 views
6

У меня есть выражение cron.Что означает выражение cron, означает?

"0 0 0 ? * SUN" 

когда именно это выполнено? полночь воскресной субботы?

Спасибо!

+0

+1: Это кажется простым, но, по-видимому, использует неопределенное поведение. –

+0

http://dev6.axeda.com/help/ru/cron_expression_fields.htm –

+0

почему тег java? почему -1 ?? – wuppi

ответ

3

На самом деле это не выражение cron. Это выражение в виде кварца.

http://quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/crontrigger

The 0 0 0 означает полночь (второй, минуты, час)

? означает, что она зависит от других полей.

* означает все месяцы.

SUN средства в воскресенье.

+0

Он говорит о кварцевом триггере Cron, который немного отличается от выражений Cron: см. Этот пример из кварцевого документа: 0 15 10? * MON-FRI \t Пожар в 10:15 каждый понедельник, вторник, среду, четверг и пятницу – Grooveek

22

Посмотреть tutorial

* * * * * * (year optional) 
┬ ┬ ┬ ┬ ┬ ┬ 
│ │ │ │ │ │ 
│ │ │ │ │ │ 
│ │ │ │ │ └───── day of week (0 - 7) (0 or 7 is Sun, or use names) 
│ │ │ │ └────────── month (1 - 12) 
│ │ │ └─────────────── day of month (1 - 31) 
│ │ └──────────────────── hour (0 - 23) 
│ └───────────────────────── min (0 - 59) 
└─────────────────────────  seconds 

Wild-карты (символ *) можно использовать, чтобы сказать "все" возможные значения этого поля. Поэтому символ * в поле «Месяц» предыдущего примера просто означает «каждый месяц». Поэтому поле «*» в поле «День недели» означает «каждый день недели».

«?» символ разрешен для полей дня месяца и дня недели. Он используется для указания «нет специального значения». Это полезно, когда вам нужно указать что-то в одном из двух полей, но не в другом. См. Примеры ниже (и CronTrigger JavaDoc) для уточнения.

Так это значит, каждое воскресенье в полночь

+0

Он основан на [Quartz Scheduler] (http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/CronTrigger). Он имеет cron-выражение с секундами, а не как базовое выражение cron – Grooveek

1

Триггер будет срабатывать в 00:00:00 AM каждое воскресенье (утро). 0 - начало дня, а не конец. Так что в следующую секунду он запустит 23:59:59 в субботу