2010-02-01 37 views
4

Java EE中的計時器任務不太舒服。有沒有任何util,用cron語法來配置定時器,如「0 20 20 * *」?Java EE 5的Cron語法?

我想知道,如果這將是使用Quartzinside(集羣)Java EE應用程序的好方法。據http://www.prozesse-und-systeme.de/serverClustering.html(德國頁)用石英和Java EE集羣有限制:

  • JDBC必須作爲工作存儲區石英
  • 只有集羣關聯石英實例被允許使用該JDBC工作專賣店
  • 所有羣集節點必須同步分裂第二
  • 所有羣集節點必須使用相同的quartz.properties文件

我寧願爲CON一個更簡單的方法配置定時器服務,而不是Java EE託管調度器。

回答

5

石英絕對支持類似cron的語法(與CronTrigger),但您的要求不明確。也可以看看Jcrontabcron4j


作爲一個側面說明,以聲明方式創建的cron般的時間表,以觸發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 2010-02-03 15:34:34

+0

@marabol如果JEE6是一個選項,那麼確實是一個明智的選擇。 – 2010-02-03 15:49:26