在Java中立即运行Quartz调度器

在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

我正在尝试使用Quartz scheduler立即启动新作业,该作业只运行一次,不会被触发,也不会出现任何异常

代码如下:

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的任何日志记录?你能把它们贴在这里吗?你有没有试着把睡眠时间增加到一个很大的数字,看看会发生什么?