gpt4 book ai didi

java - Quartz Scheduler 不返回值方法每 3 分钟执行一次

转载 作者:行者123 更新时间:2023-12-01 13:59:09 25 4
gpt4 key购买 nike

我们正在使用 Quartz 运行一个计划,并在executeinternal 方法中从表中获取更新的数据,但如何从 main 方法访问该 java 对象。

这是代码:

public static void main(String[] args) {
// TODO Auto-generated method stub


try {

Scheduler scheduler = new StdSchedulerFactory().getScheduler();
JobDetail jobDetail = new JobDetail("SlaTime", "SlaTimeGroup",
SlaUptimeImpl.class);
CronTrigger cronTrigger = new CronTrigger("SlaTrigger", "SlaGroup",
"0/10 * 0-23 ? * *");
scheduler.scheduleJob(jobDetail, cronTrigger);
scheduler.start();



} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

在这里,我们在此 SlaUptimeImpl 类中执行查询,但无法在此处获取返回数据,因为我在 ExecuteInternal 方法中执行查询,其返回类型为 无效

谁能帮我解决这个问题。

提前致谢,马赫什

最佳答案

您可以为您的工作提供数据 map ,感谢 JobBuilder#usingDataMap() 。我认为你可以在这个映射中放入一个“观察者”,在作业执行时检索观察者,并通知它结果。

安排工作时:

JobDataMap map = new JobDataMap();
map.put("myObserver", new MyObserver());

JobDetail jobDetail = JobBuilder.newJob(SlaUptimeImpl.class).withIdentity("SlaTime", "SlaTimeGroup").usingJobData(map).build();

在你的工作中:

public void execute(final JobExecutionContext context) throws JobExecutionException {

...

((MyObserver) context.getJobDetail().getJobDataMap().get("myObserver")).notify(result);
}

关于java - Quartz Scheduler 不返回值方法每 3 分钟执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19445469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com