记一次xxl-job配置的cron表达式没有触发定时任务

xxl-job一次故障引发的解析惨案 什么是 xxl-job, 这个就不用过多解释. 我们直接看架构图. 阅读详情
AI摘要

博客讲述了作者在使用XXL-Job时遇到的定时任务未触发的问题,原因是cron表达式错误及Docker容器内时区设置不正确。通过检查数据库时区、修改Dockerfile中的时区设置,并最终通过添加'-Duser.timezone=GMT+08'参数解决。文章强调了时区配置在分布式系统中的重要性。

记一次xxl-job定时任务没有触发的问题,公司选用的是最简单的xxl-job的remote http bean模式,cron表达式写错了,0 0/5 * * * ? 表达式后面有空格,将表达式修改正确后必须将任务停止后再重新启动否则任务不会生效。至于下面的时区我暂时没有遇到,因为之前的定时任务都可以正常使用。

 

当初选了xxl-job就是因为它的触发机制比较靠谱,到点准时发,而且有日志可以看。

昨天突然发现部署在一台本地机器上的xxl-job到点并没有触发,且没有任何日志。通过管理页面查询触发日志,发现日志还是有的,只是和筛选条件不甚匹配。比如选取了昨天的日志,结果集中包含了今天早间的内容。初步怀疑是因为时差问题导致未能触发。

查看该机器上xxl-job对应的数据库,datetime类型的数据存储的都是标准时间,而我本地数据库中对应的是北京时间。尝试配置数据库时区:

show variables like "%time_zone%";

根据百度结果,CST可能会造成时区的混乱,所以手动将time_zone改为北京时间:

SET GLOBAL time_zone = "+08:00";
SET time_zone = "+08:00";
FLUSH PRIVILEGES;

修改结果如:

然并卵,日志的日期依然不能和筛选条件相匹配。

点开xxl_job_info这张表,其中的字段trigger_next_time中的时间比job_cron中定义的触发时间多了8个小时,查看xxl-job-admin源码,trigger_next_time这个字段是程序中计算出来的,用关键字timezone搜索代码,意外发现Dockerfile设置了时区:

FROM openjdk:7-jre-slim
MAINTAINER xuxueli

ENV PARAMS=""

ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

ADD target/xxl-job-admin-*.jar /app.jar

ENTRYPOINT ["sh","-c","java -jar /app.jar $PARAMS"]

联想到这台机器上xxl-job就是用docker部署的,而Dockerfile是运维小伙自己手动编写,并没有timezone信息。而我在本地没有遇到这个问题,是因为我本地的xxl-job并不是运行在docker中。确定问题出在docker环境的时区信息没有设置!

解决:

运维小伙启动jar包添加了参数 -Duser.timezone=GMT+08,问题解决。

微服务中XXL-JOB定时任务完整教程 XXL-JOB分布式任务调度系统完整教程摘要 XXL-JOB是一个轻量级分布式任务调度平台,核心设计理念是将任务调度和任务执行分离。本文详细介绍了XXL-JOB的架构设计、环境搭建和微服务集成方案,包含以下核心内容: 环境搭建:包括数据库创建、调度中心部署的三种方式(源码编译、Docker、Kubernetes) 微服务集成:通过SpringBoot项目演示如何添加依赖、配置执行器参数 任务开发:详细讲解基础任务、带参数任务、分片任务的实现方式,并提供了生产环境最佳实践 调度中心配置:包括执行器管理、任务创 阅读详情

相关推荐

【异常】定时任务框架XXL-JOB因错误配置Cron表达式提示Cron非法+java.text.ParseException: Unexpected end of expression.

【代码】【异常】定时任务框架XXL-JOB因错误配置Cron表达式提示Cron非法+java.text.ParseException: Unexpected end of expression.

奶爸的编程之路,也就一周冷个三天 2067

xxl-job的cron表达式详解

一丶xxl-job的表达式由7个部分组成,例如: 注:/与5算是一个整体 秒数 分钟 小时 日期 月份 星期 年份(可为空)} */5 * * * * ? 二丶各个位置的取值范围,看上面的小例子,应该都能想到了,从前往后对应,分别为: 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN-DEC , - * / 可以用0-11 或用字符串 “JAN, FEB, M

ZHANGJNWEI的专栏 1万+

【异常】记一下因分布式定时任务框架XXL-JOB中Cron表达式写错导致的OOM问题

记一下因XXL-JOB Cron写错导致的OOM问题

奶爸的编程之路,也就一周冷个三天 1741

xxl-job中的cron表达式详解

xxl-job 是一个轻量级分布式任务调度平台,核心的设计目标:学习简单、开发迅速、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。而且有较为完善的说明文档《分布式任务调度平台XXL-JOB》和 图形化操作界面。xxl-job是开源项目,在 GitHub 可以下载到项目的源码,调度中心是一个 Spring MVC 项目,搭建 demo 前也需要将项目完整 clone 到本地。

Anthony路人甲的博客 4930

FastAPI + Layui:打造企业级敏捷开发后台管理系统

本文详细介绍了如何使用FastAPI和Layui构建高效的企业级后台管理系统。FastAPI提供高性能的异步API支持,而Layui则简化了前端开发流程,两者结合可实现快速开发和部署。文章涵盖了从环境搭建、核心组件开发到性能优化的全流程,特别适合需要敏捷开发的企业项目。

weixin_29045585的博客 555

Notepad++ XML Tools插件:手把手教你格式化混乱XML与一键语法检查(保姆级教程)

本文详细介绍了如何使用Notepad++的XML Tools插件格式化混乱的XML文件并进行一键语法检查。通过插件安装、格式化实战和语法排错的完整流程,帮助开发者高效处理XML数据,提升API通信和数据存储的工作效率。特别适合需要快速验证和整理XML配置的开发人员。

weixin_42619742的博客 324

cron表达式学习

一、Cron 是计划任务(定时任务) 二、Cron表达式 Cron表达式是一个字符串,分为6或7个域,每个域用空格分开。Cron有如下两种语法格式: (1) Seconds Minutes Hours DayofMonth Month DayofWeek Year (2) Seconds Minutes Hours DayofMonth Month DayofWeek cor...

weixin_30776273的博客 521

全志Longan和Tina系统T113-S3-(Tina Linux 系统介绍)

Tina Linux是全志科技基于Linux内核开发的针对智能硬件类产品的嵌入式软件系统。Tina Linux基于openwrt-14.07 版本的软件开发包,包含了 Linux 系统开发用到的内核源码、驱动、工具、系统中间件与应用程序包。Tina系统软件架构如图所示。从下至上分别为Kernel && Driver、Libraries、System Services、Applications 四层。

szembed的博客 6332

xxljob 任务没有触发

参考:https://www.yht7.com/news/14410 原因:时区不对 解决方案:启动命令添加-Duser.timezone=GMT+08

风远陌 2861

【图形学】Loop细分算法及半边结构实现(C++)

文章目录Loop 细分算法介绍增加新顶点更新旧顶点算法实现半边结构半边结构的表示方法半边结构的构造方法创建所有顶点创建所有面及半边半边结构的使用 Loop 细分 顾名思义,网格细分是将粗糙网格精细化的过程,如下动图。Loop细分是众多网格细分算法的一种,Loop细分仅仅对三角形网格模型有效。值得注意的是,虽然叫Loop细分,但是不能理解为“循环”细分,叫这个名字是因为作者的名字是这个而已。 下面是一个粗糙的兔子模型1000个面,进行3次细分 算法介绍 Loop细分算法主要分两步进行 增加新顶点:增加

wk_119的博客 8066

opencv简单小项目

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像和视频处理功能。要开始一个OpenCV项目,你需要安装OpenCV库,这通常可以通过Python的pip包管理器完成。替换为你要加载的图像的实际路径。这个例子展示了OpenCV项目的基本结构,你可以在此基础上添加更多的图像处理功能。如果你需要更详细的指导或代码示例,请告诉我你的具体需求。

youyouxiong的博客 971

XXL-JOB:定时任务框架的实战应用与调度方式详解

XXL-JOB是一个轻量级分布式任务调度平台,它采用中心化设计,调度中心负责任务管理、调度,执行器负责任务执行。除此之外,XXL-JOB还支持多种调度模式,比如固定速率执行、Cron表达式等,满足不同业务场景的需求。那我们为什么现在就会使用分布式的调度框架呢?大家来看下面这个图:上面是一个发送优惠券的定时任务如果只是单体项目的话,定时任务执行是不会有任何问题的如果后期业务量较大,单体项目做了集群部署,那集群中每一台服务的代码都是一样的,都会按照规定的时间来执行任务,这样就会造成优惠券重复发放。

小威的博客 3万+

SAP SD模块定价过程后台配置简介

只有手工输入定价时(例如,在定价中的定价浏览屏幕中),或者只有从外部处理转移这些定价时(例如,成本核算),才将这些定价包括在确定(价格确定、输出确定,批次确定)之中。定价过程的定义和分配是SD模块中最核心的配置,包含了条件表、条件类型、存取顺序、发票类型、客户定价过程等,确定了销售订单已什么价格销售、税率、附加折扣等多个条件行程有一个定价过程。12、小计:记录该条件类型在VBAP表中是否存储,以及其后续用途,如记入信贷,占用信贷额度,记入成本等,如果需要金额暂用信贷额度的话,在小计这里选择A即可。

我小时候很黑的博客 3781

XXL-JOB及Cron表达式

源代码位置:/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java。xxl_job_info:调度扩展信息表, 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;‌周:1-7之间的整数或SUN-SAT,1表示星期天,2表示星期一。

qq_56650001的博客 3743

【WRF-Urban数据集】中国60个城市的1 km分辨率城市冠层参数(UCPs)

中国60个城市的1 km分辨率城市冠层参数(UCPs)

WW、forever的博客 1063

【RT-DETR涨点改进】损失函数改进篇 | RT-DETR引入SlideLoss损失函数,适合目标检测中面临的尺度变化、遮挡以及难易样本不平衡等复杂场景下的检测任务,含详细使用步骤

本文提出在RT-DETR目标检测模型中引入SlideLoss损失函数,以解决尺度变化、遮挡和难易样本不平衡等问题。SlideLoss通过自适应阈值划分正负样本,并对难样本赋予更高权重,使模型更关注分类边界样本。文章详细展示了SlideLoss的核心代码实现,并逐步指导如何在RT-DETR框架中集成该损失函数。实验表明,该方法能有效提升模型性能,特别适用于复杂场景下的目标检测任务。

Ai缝合怪、助力小伙伴高效发论文 263

XXL-JOB快速入门(什么是XXL-JOB、部署XXL-JOB、在SpringBoot项目中接入XXL-JOB、XXL-JOB中的核心概念、集群环境下任务的路由策略)

XXL-JOB快速入门(什么是XXL-JOB、部署XXL-JOB、在SpringBoot项目中接入XXL-JOB、XXL-JOB中的核心概念、集群环境下任务的路由策略)

聂可以的博客 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

@Scheduled,Quartz,XXL-JOB三种定时任务总结

Quartz是一个开源的、功能强大且灵活的作业调度框架,它支持复杂的调度需求,作业持久化、集群部署等功能。它允许你按照设定的时间规则执行特定的任务,例如定时执行、循环执行、间隔执行等。Quartz可以与Spring等框架无缝集成,被广泛应用于企业级应用中。XXL-JOB是一个分布式任务调度平台,用于在分布式系统中进行任务调度和管理。XXL-JOB提供了可视化的任务管理界面、任务的动态添加、修改、删除等功能。它支持分布式部署,并提供了任务执行日志、任务运行状态等监控功能。

m0_72075879的博客 3591

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

cron 每年执行一次_定时任务的cron表达式

前言对于开发人员来说,在做项目的过程中或多或少都会用到定时任务,Java开发一般会用Spring Quartz、xxl-job、Elastic-job来做定时任务调度框架。不论使用哪种框架,定时任务表达式都是必不可少的。平时配置cron表达式,基本上都是把别人写好的表达式样例复制过来修修改改就好了。当然现在也有许多网站提供了在线生成cron表达式的功能,我们只要按照规则填写就可以轻松的得到cron...

weixin_39685024的博客 2万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

XXL-JOB分布式定时任务框架快速入门

​ XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。​ 目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,北京尚德,360金融 (360),联想集团 (联想),易信 (网易)等;@Component/*** 1、简单任务示例(Bean模式)*///todo 打印时间//.....省略....../**

m0_62943934的博客 2822

SpringBoot整合XXL-JOB(定时任务调度框架)

本文对比了三种任务调度框架:SpringTask、Quartz和XXL-JOB。SpringTask简单轻量但不支持分布式;Quartz功能全面但配置复杂;XXL-JOB专为分布式设计,支持动态任务、失败重试、任务分片等特性,并内置Web管理平台。文章详细介绍了XXL-JOB的安装部署流程,包括数据库配置、核心参数说明(如线程池、邮件告警等)以及SpringBoot集成方式。通过@XxlJob注解可快速创建任务处理器,支持Cron表达式和参数传递。XXL-JOB适用于微服务环境下的复杂任务调度场景。

TinpeaV的博客 1414

Java中三种定时任务总结(schedule,quartz,xxl-job)

Java中三种定时任务总结(schedule,quartz,xxl-job)

林隐的博客 1万+

docker和K8S环境xxl-job定时任务不执行问题总结

xxl-job 任务不执行,或者执行异常问题整理归纳

日拱一卒无有尽,功不唐捐终入海 5198

XXL-JOB面试问题

XXL-Job 是一款分布式任务调度平台,用于解决分布式系统中的定时任务和异步任务调度问题。它提供了任务的注册、调度、执行和监控等功能,能够帮助开发者简化任务调度的复杂性,提高任务执行的准确性和稳定性。

码上言 2405
上一篇: java 类部类必须声明为static静态的 com.alibaba.fastjson.JSONException: can‘t create non-static inner class ins
下一篇: 获取SpringCloud gateway 响应的response的值,可以查看、修改
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值