2010-02-01 2 views
4

Задачи таймера в Java EE не очень удобны. Есть ли какие-либо утилиты, чтобы настроить таймер с синтаксисом cron как «0 20 20 * *»?Синтаксис Cron с Java EE 5?

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

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

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

ответ

5

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


В качестве примечания, возможности декларативно создать хроны типа графики, чтобы вызвать методы EJB является одним из наиболее важного усиления службы таймера в EJB 3.1 (с использованием @Schedule аннотацию). Ниже приведен пример, взятый из New Features in 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... 
    } 
} 
+0

Большое спасибо. Я хочу использовать только JEE. TimerService.createCalendarTimer (ScheduleExpression) - мой любимый. Подробности можно найти по адресу http://jcp.org/en/jsr/detail?id=318 – marabol

+0

@marabol Если JEE6 является вариантом, это действительно разумный выбор. –

Смежные вопросы