记录xxl-job重复执行引发业务问题

发布时间:2024年01月24日

业务问题描述

1.创建运单,发现重复(同一个车架号两条记录)

2.通知重复反馈,A系统读取中间表状态为未处理数据,推送到B系统

原因分析

1.以上两个问题都是xxljob定时执行的

2.通过日志分析,读取中间表数据,同一条数据被多次处理

针对重复运单数据分析,之前有没有做控制,应该做幂等

查看发现

1.数据库层面:没有做唯一索引控制

2.代码层面:通过查询是否存在,做幂等。但是并发情况下,这种校验无效

处理方案

1.运单重复问题

加分布式锁 / 加惟一索引

原因再分析

1.业务日志,发现同一个单子被重复处理了多次

2.xxljob日志如下,发现调度时间正常,执行时间出现了很大的延迟,导致4个任务,调度时间间隔5min,实际执行时间却是几乎同一个时间,09:57:42,可能只是相差毫秒级。并发执行。

到这里找到了问题源头,是xxljob的问题,导致了重复执行。

那么为什么xxljob出现了这样的问题。

猜测:任务过多,xxljob执行线程,不够用,任务在执行队列中等待,等有空闲线程时,等待的任务被同时调用。

官方文档

分布式任务调度平台XXL-JOB

找到如下内容

几个概念:异步执行队列,执行器

疑问

单机能够支撑5000任务并发运行稳定运行,按理说够啊

而且执行线程总共有多少

关于事物,job执行的任务,是否存在事物。

文章来源:https://blog.csdn.net/C18298182575/article/details/135813899
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。