在我的项目中需要电子邮件触发所以我使用石英这个。 我通过注释配置石英:
@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只接受常量表达。 请帮我 谢谢
答案 0 :(得分:0)
我认为你不能使用注释来实现它。尝试使用代码而不是注释配置quartz作业。以下是该示例代码:
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);