jeecg-boot集成xxl-job调度平台,每秒/每分钟/手动都能执行成功,但是设置固定时间不触发?

本文主要是介绍jeecg-boot集成xxl-job调度平台,每秒/每分钟/手动都能执行成功,但是设置固定时间不触发?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好,我是雄雄。

在这里插入图片描述

目录

这里写目录标题

    • 目录
    • bug说明
    • 解决bug的过程
    • 解决方法
    • 结论

今天在用jeecg-boot集成了的xxl-job的时候,遇到了个奇葩的问题(其实一点都不奇葩),投入了几个人,一起看这个问题,看了一天都,还没解决。后来一个不经意的瞬间,别人指导了下,才发现问题所在。

bug说明

我们的业务是与周有关的,用户通过小程序,设置每周的周几进行提醒,然后我们将具体的提醒信息生成cron表达式存在数据库中,顺便开启定时任务,让定时任务满足cron表达式后,自动触发方法去执行。

业务没有问题,流程没有问题,问题就出在了定时任务上。
👉问题就是:定时任务,设置成每秒/每分钟/手动都能执行成功,但是设置固定时间不执行,也没有报错。

写这个块儿代码的同事坚持说,以前是可以用的,现在不可以用了。(就因为这句话,导致解决问题的思维一直是错的)

解决bug的过程

  1. 我们将微服务项目重新clean,构建,重启,不管用!!
  2. 我们将cron表达式,正解析反解析,不管用!!!(自认为不管用)
  3. 同事说之前是可以的,于是我们就回滚代码,回滚到可以时候的代码,还是不管用!
  4. 新建执行器,注册地址手动录入,自动注册,均不管用!
  5. 问了别人,也不管用!!

我们也知道,这个问题很好解决,很简单,就是哪里不小心给弄错了,或者哪个地方配置错了,只是就是不知道是哪里?

按理说,定时任务不触发,就是cron表达式的问题,但是检查了好几遍,没有问题啊,在线生成的次数太多了,导致我们都会手写cron表达式了。

💀大家看看,比如我想设置个周四的20:30提醒我,在线生成一下:
在这里插入图片描述
注意看星期的,是不是四,是吧?

解决方法

是你就错了,这特么的是星期三!!!是星期三!!!

我就是这样的,今天周四,就写了个4,到点看看执行了没?没有执行!

于是和同事们一直在纠结这个问题,为啥不执行呢?然后反反复复的看,咋还是不执行呢,于是大家围着一圈,一块看到底是哪里出问题了…

现在想想,真是无语了啊。
在这里插入图片描述

默默的把四改成五,就可以了。*

结论

cron表达是中。别的还没看出来,但是星期话的,得+1,+1,+1,记清楚了,得+1!!!
好了,千万得注意啊。

这篇关于jeecg-boot集成xxl-job调度平台,每秒/每分钟/手动都能执行成功,但是设置固定时间不触发?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/429211

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消