【问题标题】:java quartz get all details from a scheduled jobjavaquartz 从计划的作业中获取所有详细信息
【发布时间】:2012-03-14 09:40:44
【问题描述】:

我有一个有许多作业的调度程序。我希望能够显示调度程序中的所有活动作业,我的意思是我想显示每个作业何时被触发。 这是我的代码:

        sched.start();                

        JobDetail job = newJob(Jobs.class)
        .withIdentity(job_name_, "default") 
        .usingJobData("job_type", job_type_)            
        .build();

         Trigger trigger = newTrigger()
        .withIdentity(job_name_, "default")
        .startNow()                
        .withSchedule(cronSchedule(date_time_)) 
        .build();

        sched.scheduleJob(job, trigger);      

如何做到这一点?我如何从作业的触发器中获取 cron 表达式?还有一种方法可以将 cron 表达式视为日期或比表达式本身更详细的东西吗?

如有任何帮助,将不胜感激,

提前致谢。

【问题讨论】:

    标签: quartz-scheduler scheduler crontrigger


    【解决方案1】:

    所有 API 都在那里:

    Trigger t = scheduler.getTrigger(new TriggerKey(job_name_, "default"))
    

    返回的Trigger 类有getNextFireTime()。子类化它以获得 CRON 表达式:

    ((CronTrigger)t).getCronExpression();
    

    Scheduler 拥有您需要的所有其他方法:

    【讨论】:

    • 谢谢!!我现在可以看到 cron 表达式.. 有没有办法像 getHour\getDay\etc 那样获取它的详细信息。 ?
    • @user590586:您的意思是从 Date 或 CRON 表达式中获取日期/小时?前者可以使用Calendar 来实现,后者 - 你必须解析 CRON 表达式。 Quartz 有一些实用程序可以做到这一点。
    • 对不起,但我没有完全理解,我想从 cron 表达式中获取有关触发时间的所有详细信息 - 一周中的哪几天,什么时间等。我应该解析 CRON表达到calendar ?然后得到我想要的信息?这是你的意思吗?如果是这样,是否有解析方法的示例或 api?再次感谢!
    • @user590586: new org.quartz.CronExpression("0 0 12 * * ?") - 它会为你解析 CRON 表达式。
    • 我可以从新的 CronExpression 对象中获取我想要的信息吗?从我所看到的我无法获得小时、天等。我如何从这个对象中获取所有详细信息?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多