0

在我的项目中,需要触发电子邮件,所以我为此使用了石英。我通过注释配置石英:

@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "cronTrigger", propertyValue ="0 30 10 * * ?") })
@ResourceAdapter("quartz-ra.rar")
public class QuartzMDBTest implements Job {

  public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {


    System.out.println("Quartz1 job executed!");  
}

在上面的代码中,我将时间设置为 10:30,但我希望它来自数据库。如何做到这一点?propertyvalue 只取常量表达式。请帮帮我谢谢

4

1 回答 1

0

我认为您无法使用注释来实现它。尝试使用代码而不是注释来配置石英作业。这是一个示例代码:

    CronTrigger trigger = new CronTrigger();
    trigger.setName("dummyTriggerName");
    // fetch the value from DB here and create the CRON string accordingly
    final String cronString = "0 " + value fetched from DB + " 10 * * ?"
    trigger.setCronExpression(cronString );


Scheduler scheduler = new StdSchedulerFactory().getScheduler();
    scheduler.start();
    scheduler.scheduleJob(job, trigger);
于 2013-06-11T12:41:01.443 回答