在Java中立即运行Quartz调度器
我正在尝试使用Quartz scheduler立即启动新作业,该作业只运行一次,不会被触发,也不会出现任何异常 代码如下:在Java中立即运行Quartz调度器,java,quartz-scheduler,Java,Quartz Scheduler,我正在尝试使用Quartz scheduler立即启动新作业,该作业只运行一次,不会被触发,也不会出现任何异常 代码如下: public void startRecipeUpdateJob(Ingredients ingredient) { try { JobDataMap jobDataMap = new JobDataMap(); jobDataMap.put(RecipeMessages.INGREDIENT_TEXT, i
public void startRecipeUpdateJob(Ingredients ingredient) {
try {
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put(RecipeMessages.INGREDIENT_TEXT, ingredient);
// specify the job' s details..
JobDetail job = JobBuilder.newJob(RecipesUpdateJob.class).setJobData(jobDataMap).build();
// specify the running period of the job
Trigger trigger = TriggerBuilder.newTrigger().startNow().build();
SchedulerFactory schFactory = new StdSchedulerFactory();
Scheduler sch = schFactory.getScheduler();
sch.start();
sch.scheduleJob(job, trigger);
logger.info("Scheduler scheduled job: " + RecipesUpdateJob.class.getClass());
Thread.sleep(1000L);
sch.shutdown(false);
} catch (SchedulerException | InterruptedException e) {
logger.info("Scheduler Stopped running: " + e.getMessage());
}
}
这是作业类:
public class RecipesUpdateJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDataMap map = context.getJobDetail().getJobDataMap();
Ingredients ingredients = (Ingredients) map.get(RecipeMessages.INGREDIENT_TEXT);
RecipeHelperTwo recipeHelper = new RecipeHelperTwo();
recipeHelper.updateRecipesCaloriesByIngredient(ingredients);
}
}
请帮忙,
谢谢。RecipeMessages.component\u TEXT的值是多少?您在控制台中看到Quartz的任何日志记录吗?你能把它们贴在这里吗?另外,您是否尝试将睡眠时间增加到一个较大的数字,并查看会发生什么?RecipeMessages.Component_TEXT的值是多少?您是否在控制台中看到来自Quartz的任何日志记录?你能把它们贴在这里吗?你有没有试着把睡眠时间增加到一个很大的数字,看看会发生什么?