java定时任务cron表达式每周执行一次的坑及解决

目录
  • java定时任务cron表达式每周执行一次的坑
  • cron表达式指定每周几调度

java定时任务cron表达式每周执行一次的坑

java springboot 利用schedule执行定时任务是很常用的功能,有一个很常用的网站就是在线Cron表达式生成器,但是在这个网站最近遇到一个坑。

我要每周四执行一次,我把我写的表达式在这个网站验证了,是可以的,你看最近10次执行时间,同时看一下我右下角的日历,没问题吧,实际上坑已经出现了。

在这个验证前,我先在网上查了一次资料,1周日,2是周一,那就周四就是5,每个周四的1点执行一次 表达式是@Scheduled(cron = "0 0 1 ? * 5"),觉得就是这样了,结果周四没执行,周五才执行。

   /**
     * 保存司机统计的数据
     * 每个周四的1点执行一次
     */
    @Scheduled(cron = "0 0 1 ? * 5")

经过验证,每周几点执行一次的话,这个周,周一就是1,周二就是2,千万记得,不要掉坑了。

每个周四的1点执行一次 正确的表达式是@Scheduled(cron = "0 0 1 ? * 4")

cron表达式指定每周几调度

每周二零点调度

0 0 0 ? * 3 *

注意,星期的范围{1, 2, 3, 4, 5, 6, 7}。第一天是星期天

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Spring Task定时任务每天零点执行一次的操作

    最近根据项目的需求,需要限制用户每天的发送短信数量.这样以来就需要写一个定时任务,每天去置零一次所有用户的发送短信统计数量. 首先,在application.xml文件中添加 <task:annotation-driven /> 接着就是编写自己的业务处理逻辑 package com.*.*.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.sch

  • Spring @Scheduler使用cron表达式时的执行问题详解

    前言 Spring Scheduler里有两个概念:任务(Task)和运行任务的框架(TaskExecutor/TaskScheduler).TaskExecutor顾名思义,是任务的执行器,允许我们异步执行多个任务.TaskScheduler是任务调度器,来运行未来的定时任务.触发器Trigger可以决定定时任务是否该运行了,最常用的触发器是CronTrigger.Spring内置了多种类型的TaskExecutor和TaskScheduler,方便用户根据不同业务场景选择. 本文主要介绍了关

  • SpringBoot 定时任务遇到的坑

    前言 springboot已经支持了定时任务Schedule模块,一般情况已经完全能够满足我们的实际需求.今天就记录一下我使用 schedule 时候踩的坑吧. 想要使用定时,我们首先要开启支持,其实就是在启动类上面加个注解就 Ok. @SpringBootApplication @EnableScheduling public class Application { public static void main(String[] args) { SpringApplication.run(A

  • Java spring定时任务详解

    目录 一.定时任务 1.cron表达式 2.cron示例 3.SpringBoot整合 总结 一.定时任务 1.cron表达式 语法:秒 分 时 日 月 周 年 (其中"年"Spring不支持,也就是说在spring定时任务中只能设置:秒 分 时 日 月 周) 2.cron示例 3.SpringBoot整合 @EnableScheduling @Scheduled 实例: package com.xunqi.gulimall.seckill.scheduled; import lomb

  • java定时任务cron表达式每周执行一次的坑及解决

    目录 java定时任务cron表达式每周执行一次的坑 cron表达式指定每周几调度 java定时任务cron表达式每周执行一次的坑 java springboot 利用schedule执行定时任务是很常用的功能,有一个很常用的网站就是在线Cron表达式生成器,但是在这个网站最近遇到一个坑. 我要每周四执行一次,我把我写的表达式在这个网站验证了,是可以的,你看最近10次执行时间,同时看一下我右下角的日历,没问题吧,实际上坑已经出现了. 在这个验证前,我先在网上查了一次资料,1周日,2是周一,那就周

  • java关于list集合做删除操作时的坑及解决

    目录 关于list集合做删除操作时的坑 解决办法 对List集合的常用操作 1.list中添加,获取,删除元素 2.list中是否包含某个元素 3.list中根据索引将元素数值改变(替换) 4.list中查看(判断)元素的索引 5.根据元素索引位置进行的判断 6.利用list中索引位置重新生成一个新的list(截取集合) 7.对比两个list中的所有元素 8.判断list是否为空 9.返回Iterator集合对象 10.将集合转换为字符串 11.将集合转换为数组 12.集合类型转换 13.去重复

  • 关于@Scheduled参数及cron表达式解释

    目录 @Scheduled参数及cron表达式解释 @Scheduled支持以下8个参数 cron表达式是一个字符串,以空格分开共6个域 通配符说明 常用表达式示例 @Scheduled 定时任务总结 @Scheduled @Scheduled 参数说明 注意事项 @Scheduled参数及cron表达式解释 @Scheduled支持以下8个参数 1.cron:表达式,指定任务在特定时间执行: 2.fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms: 3.f

  • Quartz实现JAVA定时任务的动态配置的方法

    先说点无关本文的问题,这段时间特别的不爽,可能有些同学也遇到过.其实也可以说是小事一桩,但感觉也是不容忽视的.我刚毕业时的公司,每个人每次提交代码都有着严格的规范,像table和space的缩进都有严格的要求,可以说你不遵守开发规范就相当于线上bug问题,还是比较严重的.现在发现外面的公司真的是没那么重视这个不重要却又特别重要的问题啊,啊啊啊啊啊啊!!! 什么是动态配置定时任务? 回归正题,说下这次主题,动态配置.没接触过定时任务的同学可以先看下此篇:JAVA定时任务实现的几种方式 定时任务实现

  • Java 定时任务技术趋势详情

    目录 Java 中自带的解决方案 Spring 中自带的解决方案 业务幂等解决方案 开源任务调度中间件 企业级解决方案 定时任务技术趋势简介:定时任务是每个业务常见的需求,比如每分钟扫描超时支付的订单,每小时清理一次数据库历史数据,每天统计前一天的数据并生成报表等等. Java 中自带的解决方案 使用 Timer 创建 java.util.TimerTask 任务,在 run 方法中实现业务逻辑.通过 java.util.Timer 进行调度,支持按照固定频率执行.所有的 TimerTask 是

  • Java定时任务详解

    定时任务在项目中经常会使用到,本文主要根据博主自己使用定时的经验分如下几点介绍定时任务: 1.Quartz定时任务简介及Spring配置Quartz定时任务 2.SchedulerFactory对定时任务进行增删改查 3.总结 Quartz定时任务简介: Quartz是项目中经常用到的定时任务之一,是一个完全由java编写的开源作业调度框架,可以与J2EE与J2SE应用程序相结合也可以单独使用,其主要组成部分包括Job.Scheduler.CronExpression,这里就不一一介绍了,下面介

  • springboot Quartz动态修改cron表达式的方法

    1.概述: 在开发中有的时候需要去手动禁止和启用定时任务,修改定时任务的cron表达式然后再让其动态生效,之前有过SSM的类似的业务的开发但是忘记写下来了...只好重新温习了一次,加上最近比较流行springBoot所以升级了一下用springBoot来完成. 2.关联技术 SpringBoot.Quartz.H2.thymeleaf (好像就这么多) 3.具体流程 1)首先去手动创建一个调度器工厂对象-SchedulerFactoryBean;其实应该不用手动创建的但是为了顾及到业务的复杂性所

  • java定时任务框架elasticjob详解

    前言 Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架.去掉了和dd-job中的监控和ddframe接入规范部分.该项目基于成熟的开源产品Quartz和Zookeeper及其客户端Curator进行二次开发. ddframe其他模块也有可独立开源的部分,之前当当曾开源过dd-soa的基石模块DubboX. 项目开源地址:https://github.com/dangdangdotcom/elastic-job Elastic-Job是ddframe中d

  • java定时任务实现的4种方式小结

    1. java自带的Timer Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { System.out.println("Time's up!"); } },3*1000,1000); 2.ScheduledThreadPool-线程池 ScheduledExecutorService scheduledThreadPool = Executors.newS

随机推荐