Кварцевый триггер хронографа каждые 2 недели и 2 раза в день (6:00 и 18:00)

Я хочу выполнять кварцевую работу каждые 2 недели в 6 часов утра и 6 часов вечера. как этого добиться. пожалуйста, посоветуйте.

Я пытался запланировать использование ниже выражения cron

01 01 1 1-0/14 01 ? *

но следующее время пожара указано ниже.

  1. 1 января 2017 г. 1:01
  2. 15 января 2017 г. 1:01
  3. 29 января 2017 г. 1:01
  4. 1 января 2018 г. 1:01
  5. 15 января 2018 г. 1:01

person ys reddy    schedule 24.03.2016    source источник
comment
Может быть, объясните, какое время вы хотите использовать в следующий раз, потому что я не уверен, правильно ли я понимаю вопрос. Вы хотите, чтобы он сработал в 6:00 и 18:00 с интервалом в двенадцать часов, но затем не снова в течение следующих 14 дней, а затем снова дважды подряд?   -  person Geoffrey Wiseman    schedule 24.03.2016
comment
обновили выражение cron 01 01 6,18 1-0 / 14 01? *. время следующего пожара показано ниже 1. Воскресенье, 1 января 2017 г., 6:01 2. Воскресенье, 1 января 2017 г., 18:01 3. Воскресенье, 15 января 2017 г., 6:01 4. Воскресенье, 15 января , 2017 18:01 5. Воскресенье, 29 января 2017 г., 6:01 6. Воскресенье, 29 января 2017 г. 18:01 7. Понедельник, 1 января 2018 г., 6:01 8. Понедельник, 1 января 2018 г. 18:01 9. Понедельник, 15 января 2018 г., 6:01 10. Понедельник, 15 января 2018 г., 18:01   -  person ys reddy    schedule 24.03.2016
comment
Я / хочу / знать, в какое время вы хотите, чтобы выражение сгенерировало, так что я уверен, что даю вам правильное исправленное выражение.   -  person Geoffrey Wiseman    schedule 24.03.2016


Ответы (1)


Есть несколько видов триггеров даты, в которых хороша cron. Каждые N дней часто не входит в их число. Например, если вы используете что-то вроде этого:

0 0 6,18 */14 * ?

У вас может получиться что-то вроде этого:

  1. 29 марта 2016 г. 6:00
  2. 29 марта 2016 г. 18:00
  3. 1 апреля 2016 г. 6:00
  4. 1 апреля 2016 г. 18:00
  5. 15 апреля 2016 г. 6:00
  6. 15 апреля 2016 г. 18:00

Как видите, 29-е, а затем 1-е - с разницей не ровно четырнадцать дней.

Полезно иметь что-то, что позволяет вам поиграть с выражением и увидеть полученные даты. CronMaker может это сделать, если это поможет.

Однако, поскольку вы говорите, что используете Quartz, он поддерживает другие типы триггеров, например DateIntervalTrigger, которые могут быть лучше подходят для того, что вы ищете?

person Geoffrey Wiseman    schedule 24.03.2016
comment
Ах да. К сожалению, cron отлично подходит для выражения некоторых видов расписаний и не так хорош для других типов расписаний. По прошествии определенного момента вы начинаете делать что-то вроде того, что просто вызываете скрипт каждый день и заставляете этот скрипт решать, следует ли его вызывать (каждые 14 дней). Это не здорово, но cron просто не поддерживает все желаемые расписания. - person Geoffrey Wiseman; 28.03.2016