【问题标题】:Quartz scheduler is not workingQuartz 调度器不工作
【发布时间】:2013-03-17 05:58:15
【问题描述】:

我已经创建了一个调度器:

SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
Trigger trigger1 = (Trigger) 
newTrigger().withSchedule(DailyTimeIntervalScheduleBuilder.dailyTimeIntervalSchedule().startingDailyAt(new TimeOfDay(8,0)).endingDailyAt(new TimeOfDay(11,0)).withInterval(1, IntervalUnit.DAY));

Date ft = sched.scheduleJob(job, trigger1);

但是它抛出了一个异常:

Exception in thread "main" java.lang.ClassCastException: org.quartz.TriggerBuilder cannot be cast to org.quartz.Trigger

我该如何解决这个错误?

【问题讨论】:

    标签: java cron quartz-scheduler scheduler


    【解决方案1】:

    您忘记在TriggerBuilder 上调用.build(); 方法。代码应如下所示:

    newTrigger().withSchedule(
     DailyTimeIntervalScheduleBuilder.dailyTimeIntervalSchedule()
        .startingDailyAt(new TimeOfDay(8,0))
           .endingDailyAt(new TimeOfDay(11,0))
              .withInterval(1, IntervalUnit.DAY))
                 .build();
    

    【讨论】:

    • 我试过你的代码..现在我得到这样的错误..线程“main”java.lang.IllegalArgumentException中的异常:重复间隔单元无效(必须是秒、分钟或小时)。在 org.quartz.DailyTimeIntervalScheduleBuilder.withInterval(DailyTimeIntervalScheduleBuilder.java:179)
    • 是的,错误信息很明显:DailyTimeIntervalScheduleBuilder 似乎只接受秒、分钟或小时,而不是天。也许您需要另一种类型的调度程序,检查石英 api
    • 实际上的目的是调度程序应该每天晚上从 00:00 到 5:00 运行......没有重复......那么我该如何修改上面的代码??
    • 不清楚你的意思。从 00:00 到 05:00,但应该在这些时间之间重复。每半小时?每10分钟?或者调度器每晚从 0 小时开始?
    • 在午夜(00.00)到(5:00 AM)之间的每天晚上安排的任务。理想情况下,我会在这个调度程序中调用一个函数。当它到达上午 5:00 时,我有停止计划任务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2012-11-24
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多