【问题标题】:Immediate one time task with Quartz使用 Quartz 立即完成一次性任务
【发布时间】:2010-10-31 23:02:57
【问题描述】:

我正在使用Quartz 来构建一个集群线程池,并且我有许多在不同时间运行的任务。在集群线程池上运行 1 个任务的最佳方法是什么,并且只运行一次。我知道我可以将任务设置为高优先级。但是注册“一次性”任务的最佳方式是什么?

【问题讨论】:

    标签: java quartz-scheduler


    【解决方案1】:

    您还可以使用TriggerBuilder 类让生活更轻松。和之前发的差不多,只是干净了一点。

    Trigger trigger = TriggerBuilder.newTrigger()
        .startNow()
        .build();
    

    【讨论】:

    • 这适用于石英 2.2.1 只触发一次作业。
    • 我似乎找不到向此触发器添加失火指令的方法?
    【解决方案2】:

    我觉得我一定遗漏了一些东西,或者您可能只是在文档中忽略了这一点:

    public SimpleTrigger(String name, String group, Date startTime, Date endTime, int repeatCount, long repeatInterval)


    SimpleTrigger trigger = new SimpleTrigger("myTrigger",
                                                null,
                                                new Date(),
                                                null,
                                                0,
                                                0L);
    

    【讨论】:

    • repeatInterval 不能为零,否则 SimpleTrigger 将在验证期间抛出 org.quartz.SchedulerException。
    • 这不适用于石英 2.2.1。我收到一条错误消息,说无法实例化 SimpleTrigger
    【解决方案3】:

    为预先注册的工作触发一次性的最简单方法:

    Scheduler sched = ...
    scheduler.triggerJob(jobKey);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多