запланировать Java-программу с помощью кварцевого планировщика - PullRequest
1 голос
/ 01 марта 2012

Мне нужно запускать определенную программу один раз в неделю, один раз в месяц и время от времени

CronTrigger trigger = newTrigger()
        .withIdentity("trigger1", "group1")
        .withSchedule(cronSchedule("0/20 * * * * ?"))
        .build();

Какие все изменения должны быть сделаны в приведенном выше коде? Особенно в этой части ("0/20 * * * * ?")) пожалуйста помогите

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Вам нужно будет переключаться между несколькими расписаниями в зависимости от выбора пользователя:

// Once a month (the first day at midnight)
0 0 0 1 * ? 

// Once a week (Sunday at midnight)
0 0 0 * * 1

// On a specific date (November 10, 2012)
0 0 0 10 11 ? 2012

Конечно, вы можете изменить нули на другие значения, если вы хотите изменить время.См. Полное руководство здесь .

0 голосов
/ 02 марта 2012

Если вы не хотите использовать выражение cron, вы можете использовать встроенную функцию Quartz для создания триггера, но я все еще верю, что выражение cron всегда мало, и если вам удобно с ним, всегда есть путь

Еженедельные

trigger=newTrigger().withIdentity(cronTriggerDTO.getTiggerId(), "simpleGroup")
.startAt(date).withSchedule(calendarIntervalSchedule()
.withIntervalInWeeks(weekly interval in int)).build();

Ежемесячный

trigger=newTrigger().withIdentity(cronTriggerDTO.getTiggerId(), "simpleGroup")
.startAt(date).withSchedule(monthlyOnDayAndHourAndMinute(DAY_OF_MONTH, HOUR_OF_DAY,MINUTE))
.build();

После

trigger=newTrigger().withIdentity(cronTriggerDTO.getTiggerId(),"simpleGroup")
.startAt(date).forJob("myjob", "mygroup").build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...