liu_qchao
liu_qchao
2012-11-16 10:58
浏览 964
已采纳

为何spring quartz 定点不执行,但每隔一段时间可以执行

cronExpression如果配成“0 0 11 * * ?”,11点的时候没执行;
但配成“0 0/1 * * * ?”,每隔一分钟是执行的,请问一下是怎么回事?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • ll89308839
    ll89308839 2012-11-17 10:52
    已采纳

    楼主的时区设置有问题
    jvm启动参数加上这个
    -Duser.timezone=GMT+08

    点赞 评论
  • qq_1017875360_qq
    qq_1017875360_qq 2012-11-16 14:23

    表达式写错了吧。
    Cron表达式是一个字符串,字符串以5或6个空格隔开,分开工6或7个域,每一个域代表一个含义,Cron有如下两种语法
    格式:
    Seconds Minutes Hours DayofMonth Month DayofWeek Year 或
    Seconds Minutes Hours DayofMonth Month DayofWeek
    每一个域可出现的字符如下:
    代码
    Seconds:可出现,- * / 四个字符,有效范围为0-59的整数

    Minutes:可出现,- * / 四个字符,有效范围为0-59的整数

    Hours:可出现,- * / 四个字符,有效范围为0-23的整数

    DayofMonth:可出现,- * / ? L W C八个字符,有效范围为0-31的整数

    Month:可出现,- * / 四个字符,有效范围为1-12的整数或JAN-DEc

    DayofWeek:可出现,- * / ? L C #四个字符,有效范围为1-7的整数或SUN-SAT两个范围。1表示星期天,2表示星期一, 依次类推

    Year:可出现,- * / 四个字符,有效范围为1970-2099年

    你的表达式改成这样试试,[code="java"]0 0 11 0 * ? *[/code]
    参考资料:[url]http://haiziwoainixx.iteye.com/blog/1179071[/url]

    点赞 评论
  • weixin_42628032
    victor-张 2012-11-16 16:18

    看起来写的是对的,你可以这样测试,schedule以后,用Scheduler的方法getTrigger,然后再Trigger.getNextFireTime, 看看返回的下一次触发事件对不对;对的话表达式就没问题,就需要找别的问题。

    点赞 评论
  • crespo1985ban
    crespo1985ban 2012-11-16 16:21

    LZ,你的需求是每天11点运行一次吧?

    试一下这个表达式“0 0 11 * * ? *”

    点赞 评论
  • QQ1079671992
    QQ1079671992 2012-11-16 18:48

    楼主你确定你是把机器系统时间跳到11点之前(比如10:59),等着看他11点的时候是否执行了的,是吗?

    点赞 评论
  • jadethao
    jadethao 2012-11-17 00:04

    cron="0 0 11 * * ?" 试试这个。

    点赞 评论
  • jinandmei
    jinbingchuan 2012-11-18 12:46

    应该是你配置问题,你隔段时间执行说明程序没问题的,你可以看下corn表达式研究下。

    点赞 评论