定时任务及分布式定时任务注意事项

2023-11-16

一、定时任务默认是阻塞的

定时任务默认是阻塞的, 即串行执行,若一个服务配置多个定时任务,需要等上一个定时任务执行完,才能执行下一个定时任务

一个定时任务超长了,也不应该阻塞其他定时任务的执行。如一个定时任务每秒执行,而业务执行时间是5秒,那么会隔5秒等待业务执行完毕才会继续下一个定时任务。当前定时任务阻塞后,下一个定时任务得不到执行。


解决方案

  1. 业务运行以异步的方式,自己提交到线程池
CompletableFuture.runAsync(()->{
xxxxService.hello();
},executor);
  1. SpringBoot支持定时任务线程池。默认情况定时任务自动配置的线程数量为1。直接更改配置文件的配置(经常失效
    spring.task.scheduling.pool.size=5
  2. 定时任务异步执行
    在类上加@EnableAsync。在定时方法上标上注解@Async

解决:使用异步+定时任务来完成定时任务不阻塞的功能

二、分布式定时任务需要解决的问题

服务有定时任务,当服务部署到多个节点时,每个节点在同一个时间点都会执行相同的定时任务,需要做的是,让同一个时间点,每一个定时任务只在一个节点上执行。

给定时任务加一个分布式锁,再在业务代码里面加上关于幂等的逻辑判断。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定时任务及分布式定时任务注意事项 的相关文章

  • 实施前端微服务化的六七种方式

    微前端架构是一种类似于微服务的架构 它将微服务的理念应用于浏览器端 即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用 由此带来的变化是 这些前端应用可以独立运行 独立开发 独立部署 以及 它们应该可以在共享组件的同时进
  • Eureka与Zookeeper的区别

    著名的CAP 理论指出 一个分布式系统不可能同时满足 C 一致性 A 可用性 和 P 分区容错性 由于分区容错性在是分布式系统中必须要保证的 因此我们只能在 A 和 C 之间进行权衡 在此 Zookeeper 保证的是 CP 而 Eurek
  • The Raft Group [naming_instance_metadata] did not find the Leader node;caused: The Raft Group

    1 异常信息 caused errCode 500 errMsg do metadata operation failed caused com alibaba nacos consistency exception Consistency
  • Redis主从集群

    Redis主从集群 1 集群结构 我们搭建的主从集群结构如图 共包含三个节点 一个主节点 两个从节点 这里我们会在同一台虚拟机中开启3个redis实例 模拟主从集群 信息如下 IP PORT 角色 192 168 150 101 7001
  • Go 语言进阶(一) -- Go hertz http框架、kitex RPC微服务框架、gorm 数据库框架三件套用法详解

    Go 框架三件套 1 概论 Gorm Gorm 是一个已经迭代了10年 的功能强大的 ORM框架 在字节内部被广泛使用并且拥有非常丰富的开源扩展 Kitex Kitex 是字节内部 Golang 微服务 RPC 框架 具有高性能 强可扩展的
  • 开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比

    不论您是一名开发者 架构师 CTO 如果您曾深度参与在微服务开发中 那么相信您一定有过开源微服务框架或体系选型的疑问 Apache Dubbo Spring Cloud gRPC 以及 Service Mesh 体系产品如 Istio 到底
  • 为分布式做准备吧——远程调用服务(RPC)和基于消息的通信(Message Queue)对比

    文章目录 系统结构 功能特点 应用 系统结构 RPC Message Queue 调用方式 Consumer lt gt Provider Sender lt gt Queue lt gt Receiver 调用对象 Consumer调用的
  • nacos 安装并配置外部数据库

    参考链接 nacos 安装并配置外部数据库 亲测2 0 1 2 0 3 有效 zwb 121 博客园 Nacos 快速开始 下载链接 https github com alibaba nacos releases 启动服务器 Linux U
  • Dubbo快速入门

    文章目录 一 初识Dubbo 1 Dubbo是什么 2 Dubbo现状 3 Dubbo的故事 主要历程 二 RPC介绍 三 Dubbo工作原理 四 案例实操 项目编写 1 项目创建 2 服务提供者 producer 的开发 3 服务消费方
  • 为分布式做准备吧——分布式服务架构设计概述

    文章目录 分布式服务框架设计架构原理 通信框架 长连接还是短链接 BIO还是NIO 序列化与反序列化 协议栈 服务路由 基于服务注册中心的订阅发布 集群容错 服务降级 分布式消息跟踪 分布式服务框架设计架构原理 通常 分布式服务框架的架构可
  • 只要 3 个注解,优雅的实现微服务鉴权!

    原创 不才陈某 码猿技术专栏 2023 04 17 08 50 发表于山东 大家好 我是不才陈某 前面的文章中介绍了网关集成Spring Security实现网关层面的统一的认证鉴权 有不清楚的可以看之前的文章 实战干货 Spring Cl
  • SpringCloud-服务注册与发现

    服务注册与发现 前面我们没有服务注册中心 也可以服务间调用 为什么还要服务注册 当服务很多时 单靠代码手动管理是很麻烦的 需要一个公共组件 统一管理多服务 包括服务是否正常运行 等 Eureka用于 服务注册 目前官网已经停止更新 1 Eu
  • SpringCloud Gateway:status: 503 error: Service Unavailable

    使用SpringCloud Gateway路由请求时 出现如下错误 yml配置如下 可能的一种原因是 yml配置了gateway discovery locator enabled true 此时gateway会使用负载均衡模式路由请求 但
  • 【业务功能篇104】 补充【业务功能篇99】微服务-springcloud-springboot-电商订单模块--整合支付

    在前面我们业务功能篇98 99中 我们介绍了电商项目中的订单模块服务 那么最后就是需要进行支付动作 那么我们这里就通过订阅第三方平台支付宝的支付调用接口功能 来进一步完成订单提交后的支付动作 支付宝的接口使用可以登录官网开发指南详情去了解
  • 微服务项目之项目简介

    目录 项目模式 技术栈 项目架构图 模块 主模块 项目模式 电商模式 市面上有5种常见的电商模式 B2B B2C C2B C2C O2O 1 B2B模式 B2B Business to Business 是指 商家与商家建立的商业关系 如
  • 客户机操作系统已禁用 CPU。请关闭或重置虚拟机。解决方法

    今天在用VMware安装CentOS7报了这个错误 在网上找半天都没解决 最后换一个地址下的镜像就能正常安装了 Index of centos 7 9 2009 isos x86 64
  • Ribbon负载均衡策略DynamicServerListLoadBalancer的ServerListFilter解读

    一 DynamicServerListLoadBalancer在类图中的位置 二 DynamicServerListLoadBalancer源码解读 1 关键代码请见注释 2 源码位置 ribbon master ribbon loadba
  • SpringCloud概述

    SpringCloud概述 1 SpringCloud是什么 2 SpringCloud和SpringBoot关系 3 Dubbo和SpringCloud技术选型 4 SpringCloud作用 1 SpringCloud是什么 现代化的J
  • 第五章 Gateway--服务网关

    接上一篇文章开始网关之旅 首先告诉大家网关是什么 Gateway简介 怎么配置 怎么入门 执行流程等等相关介绍 第一章 微服务的架构介绍发展第二章 微服务环境搭建第三章 Nacos Discovery 服务治理第四章 Sentinel 服务
  • Python 微服务架构指南

    概要 微服务架构作为一种设计风格 它将应用程序构建为一套小服务的集合 每个服务实现特定的业务功能 这些服务可以独立部署 扩展并围绕特定业务能力构建 Python 凭借其简洁易读的语法和强大的库生态系统成为实现微服务的受欢迎选择 本文将详细介

随机推荐

  • TQ2440移植u-boot2016.11全过程记录-【7】NAND FLASH方式启动U-BOOT

    TQ2440移植u boot2016 11 NAND FLASH方式启动U BOOT S3C2440 U BOOT启动方式说明 NOR FLASH启动 S3C2440会直接在NOR上运行程序 在NOR上中的代码需要初始化芯片时钟 初始化SD
  • 关于疫情超走心的文案

    1 盼小城无恙 等烟火寻常 2 以后不在嫌弃人山人海 因为那样才是国泰民安 3 没有一个冬天不会过去 没有一个春天不会到来 4 疫情终时 这人间仍是星河滚烫 水木清华 江山如故 5 待我跨过这病与疾 春和希望都扑面而来 6 疫情结束 是今年
  • h2 mysql 对比_轻量级数据库比较:SQLite、H2和MySQLEmbedded

    对 PHP程序员来说 SQLite可以快速的搭建数据库开发环境 提供轻松 自容器 无配置 无独立服务的数据库环境 所有数据保存在一 对 PHP程序员来说 SQLite可以快速的搭建数据库开发环境 提供轻松 自容器 无配置 无独立服务的数据库
  • 在ubuntu中添加新硬盘

    前言 安装新硬盘这种事情并不会经常 发生同样它也并不复杂 本文将向你说明如何在现有的Ubuntu系统下安装一个新硬盘 并为它设置好分区然后使用它 在动手之前 你需要先考虑下面三个关于新硬盘使用方面的问题 该硬盘是否只会在Ubuntu下使用
  • 数据清洗基础—Kettle 数据转换与清洗、数据抽取操作

    实验一 数据清洗基础 Kettle 数据转换与清洗 数据抽取操作 1 实验题目 Kettle 数据转换与清洗 数据抽取操作 2实验目和要求 2 1熟悉 Kettle 的开发环境 并掌握 Kettle 环境的配置与安装 2 2能使用 Kett
  • 复习Python第八节之json数据

    目录 JSON数据学习 1 数据交换 2 json语法 1 什么是json 2 json的库函数 3 dumps 与dump 以及loads 与load 函数之间的差别 4 Json来模拟以下数据库 文本文档当作数据库 5 使用json案例
  • Srping MVC ant路径匹配

    背景 最近有一个功能设计path匹配 开发说支持ant匹配 这是我第一次听说这个词 赶紧补一下功课 Ant匹配规则 1 前言 1 SpringMVC的路径匹配规则是按照Ant来的 实际上不只是SpringMVC 整个Spring框架的路径解
  • 流媒体协议部分开源库简单比对

    流媒体协议部分开源库简单比对 版本说明 版本 作者 日期 备注 0 1 ZY 2019 2 14 初稿 目录 文章目录 流媒体协议部分开源库简单比对 版本说明 目录 目前找到的比较中意的开源库 live555 media server JR
  • 如何用计算机打出平方,x的平方怎么在电脑上打出来(常见数学符号打法图文)...

    很多小白都会这样问 数学的平方 立方怎么打出来 诸如X Y Z 等等这些右下角的角标数字又是怎么打 根号怎么打出来 一些圆形符号 对数函数 极限符号 积分 尤其是定积分 又是怎么才能在pc端去打出来呢 本篇文章介绍几种比较基础的方法 拿平方
  • 第十三届蓝桥杯单片机客观题真题考点整理

    蓝桥杯 单片机设计与开发大赛马上就要进行 最后冲刺阶段将自己整理的资料上传一下 最后一个星期主要冲刺选择题 现在将选择题的考点附上 第八届预赛 单片机 定时器工作状态 晶振 中断优先级 IO口 数码管消隐 内存分布 IO口 复位 振荡器 模
  • PLC学习札记

    PLC概念相关 PLC编程 PLC系统 通过了解概念 知道了plc的核心是对继电器编程 什么是继电器 继电器 最后 阅读PLC指导手册 结合之前学习的知识 融会贯通 PLC编程手册 FX系列 pdf 指令表运行机制 仅限于本项目
  • 人脸识别解决方案全套文件大合集,120份全新精选,有这个就够了

    人脸识别解决方案全套文件大合集 120份全新精选 有这个就够了 一 人脸识别4个特点 二 人脸识别的 4 个步骤 三 人脸识别的 5 个难点 四 人脸识别算法的发展轨迹 五 人脸识别的典型应用 六 下载人脸识别全套解决方案 一 人脸识别4个
  • ubuntu14.04 Git Github环境搭建设置

    一 安装Git sudo apt get update 获得最近的软件包的列表 sudo apt get install git git core git gui git doc git svn git cvs gitweb gitk gi
  • python是完全面向对象的语言、并且完全支持_Python

    Python是一种高级动态 完全面向对象的语言 函数 模块 数字 字符串都是对象 并且完全支持继承 重载 派生 多继承 有益于增强源代码的复用性 运算语句 表达式 函数调用和赋值 各种类型的数据对象 可以通过各种运算组织成复杂的表达式 调用
  • 第一章 dolphinscheduler基础环境搭建

    官方链接 https dolphinscheduler apache org 1 准备工作 1 解压安装包 tar xzvf apache dolphinscheduler 1 3 9 bin tar gz C opt module apa
  • uni-app 1、app-plus的使用,#ifdef MP只兼容小程序

    最近开始查看uni app的一些项目 在pages json里面发现app plus 百度了下看见一些网友的解释是app跟h5端执行 小程序则不执行 只测试过微信小程序 据说其他小程序也不执行 代码如下 path pages index i
  • mysql中的全文索引

    查询操作在数据量比较少时 可以使用like模糊查询 但是对于大量的文本数据检索 效率很低 如果 使用全文索引 查询速度会比like快很多倍 在MySQL 5 6 以前的版本 只有MyISAM存储引擎支持全 文索引 从MySQL 5 6开始M
  • 《云计算-刘鹏》学习笔记-第一章:大数据与云计算

    文章目录 0 笔记说明 1 大数据时代 2 云计算 大数据的计算 3 云计算发展现状 4 云计算实现机制 5 云计算压倒性的成本优势 0 笔记说明 参考书籍为 云计算 第三版 作者为刘鹏 1 大数据时代 大数据的定义如下 海量数据或巨量数据
  • 概率论基础(sigma域、测度)

    一 样本空间 事件 样本空间 Omega 指一个实验的可能结果的集合 omega in Omega 称为 样本
  • 定时任务及分布式定时任务注意事项

    一 定时任务默认是阻塞的 定时任务默认是阻塞的 即串行执行 若一个服务配置多个定时任务 需要等上一个定时任务执行完 才能执行下一个定时任务 一个定时任务超长了 也不应该阻塞其他定时任务的执行 如一个定时任务每秒执行 而业务执行时间是5秒 那