Cron синтаксис с Java EE 5? - PullRequest
       30

Cron синтаксис с Java EE 5?

4 голосов
/ 01 февраля 2010

Задачи таймера в Java EE не очень удобны. Есть ли какая-нибудь утилита для настройки таймера с синтаксисом cron вроде "0 20 20 * *"?

Интересно, будет ли это хорошим способом использовать Quartzinside (кластеризованное) приложение Java EE. Согласно http://www.prozesse -und-systeme.de / serverClustering.html (страница на немецком языке) существуют ограничения для кластеризации Quartz и Java EE:

  • JDBC должен использоваться как хранилище заданий для Кварца
  • Только экземплярам Quartz, связанным с кластером, разрешено использовать это хранилище заданий JDBC
  • Все узлы кластера должны быть синхронизированы с долей секунды
  • Все узлы кластера должны использовать один и тот же файл quartz.properties

Я бы предпочел более простой способ настройки службы таймера, а не планировщик, не управляемый Java EE.

1 Ответ

5 голосов
/ 01 февраля 2010

Кварц определенно поддерживает cron-подобный синтаксис (с CronTrigger), но ваши требования не ясны. Также возможно взгляните на Jcrontab или cron4j .


В качестве примечания: возможность декларативного создания cron-подобных расписаний для запуска методов EJB является одним из наиболее важных улучшений службы таймеров в EJB 3.1 (с использованием аннотации @Schedule). Ниже приведен пример из Новые функции в EJB 3.1 :

@Stateless
public class NewsLetterGeneratorBean implements NewsLetterGenerator {

    @Schedule(second="0", minute="0", hour="0",
                  dayOfMonth="1", month="*", year="*")
    public void generateMonthlyNewsLetter() {
        ... Code to generate the monthly news letter goes here...
    }
}
...