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

业务问题描述

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执行的任务,是否存在事物。

相关推荐

  1. 问题记录xxl-job admin端锁超时问题

    2024-01-24 13:00:01       27 阅读
  2. <span style='color:red;'>xxl</span>-<span style='color:red;'>job</span>

    xxl-job

    2024-01-24 13:00:01      39 阅读
  3. XXL-Job

    2024-01-24 13:00:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 13:00:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 13:00:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 13:00:01       82 阅读
  4. Python语言-面向对象

    2024-01-24 13:00:01       91 阅读

热门阅读

  1. 微信小程序中textarea表单组件字数实时更新方法

    2024-01-24 13:00:01       56 阅读
  2. python 进程

    2024-01-24 13:00:01       52 阅读
  3. Vue使用markdown编辑器

    2024-01-24 13:00:01       47 阅读
  4. Vue3脚手架笔记

    2024-01-24 13:00:01       51 阅读
  5. scrapy pipelines

    2024-01-24 13:00:01       63 阅读
  6. android 防抖工具类,经纬度检查工具类

    2024-01-24 13:00:01       43 阅读
  7. backtrader结合大语言模型chatGPT

    2024-01-24 13:00:01       59 阅读
  8. 大语言模型常见的文本切分方式整理汇总

    2024-01-24 13:00:01       63 阅读