在工作遇到了quartz的调度问题,就是调度的时间每天晚上23:00启动,必须早上8:00中断,google了好久,没有发现如何配置结束时间哎,早上8:00我必须中断,但是第二天晚上任需要正常启动,求CSDN大牛解答啊。
我不要重复执行啊!!
    

解决方案 »

  1.   

    Quartz的cron表达式是可以支持时间段的,但不知道究竟你要的有多复杂。如果太复杂,可以考虑做成两个任务,另一个任务负责专门在8点和23点控制起停你现在的任务。
      

  2.   

    那你其实应该考虑两个任务:
    ◎ 一个定时在23:00启动,启动后就干活;
    ◎ 另一个定时在8:00启动,启动后就给前一个任务发送“停止”命令。Quartz应该是不支持定时强制终止一个任务的。
      

  3.   

    对我非常有用。下面想问一下具体实现:
    1,另一个定时在8:00启动,启动后就给前一个任务发送“停止”命令。
      这个定时我是需要另外写一个jar程序不?就是我之前是发布jar包来执行23:00的任务,如果增加一个任务,可以放在同一个jar包里面进行管理么?
    2,quarta我在网上找不到有什么好的资料,可以解释一下不?
    多谢!
      

  4.   

    两个任务控制即可接下来无非是逻辑控制任务1: 运行 此时date为晚上23点 此时逻辑变量为1 运行
    任务2: 挂起 此时date为早8点 逻辑变量为0 挂起
      

  5.   

    如果时间是早8点到晚23点 就让他执行空任务
    这个是在程序里面对时间进行控制,还是quartz里面可以配置的?
      

  6.   

    首先你需要了解cron表达式的配置方法:
    字段名                 允许的值                        允许的特殊字符  
    秒                         0-59                        , - * /  
    分                         0-59                        , - * /  
    小时                   0-23                           , - * /  
    日                         1-31                        , - * ? / L W C  
    月                         1-12 or JAN-DEC             , - * /  
    周几                     1-7 or SUN-SAT               , - * ? / L C #  
    年 (可选字段)     empty, 1970-2099                  , - * /字符说明:
    “?”字符:表示不确定的值
    “,”字符:指定数个值
    “-”字符:指定一个值的范围
    “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
    “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
    “W”字符:指定离给定日期最近的工作日(周一到周五)
    “#”字符:表示该月第几个周X。6#3表示该月第3个周五下面是范例可以根据自己想要的规则进行配置修改就可以了:
    每隔5秒执行一次:*/5 * * * * ?
    每隔1分钟执行一次:0 */1 * * * ?
    每天23点执行一次:0 0 23 * * ?
    每天凌晨1点执行一次:0 0 1 * * ?
    每月1号凌晨1点执行一次:0 0 1 1 * ?
    每月最后一天23点执行一次:0 0 23 L * ?
    每周星期天凌晨1点实行一次:0 0 1 ? * L
    在26分、29分、33分执行一次:0 26,29,33 * * * ?
    每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?