首页 > 其他分享 >如何设计一个定时任务?

如何设计一个定时任务?

时间:2023-08-18 21:47:12浏览次数:44  
标签:复杂度 调度 任务 时间 设计 定时 分布式

一.日常工作中使用到的框架?

单机:Quartz,Spring Schedule 等框架;

分布式: SchedulerX,ElasticJob,xxlJob 等分布式任务调度

二.定时任务的作用

简单来讲为某个时间执行某些具体的任务

1.数据获取  2.财务账目核对 3.定时数据备份 4.定时更新数据平台的数据

三.定时任务可以使用什么数据结构来实现?

3.1 数组

将所有的任务存放在一个数组里面,间隔单位时间遍历数组,找到满足时间的任务,查询时间复杂度为o(N),

新增任务即为新增一个元素。

3.2 优先队列

随着时间的增加,超过时间的任务已经被执行过或者丢弃了,因此我们只需要查询最接近当前时间的,即前几个最小的任务,可以使用小根堆实现。

新增任务即为往树里面插入元素,时间复杂度为o(log(N)),查找复杂度为o(log(N))

3.3时间轮算法

  多层次时间轮,就跟我们的时钟或者水表一样,这一层的走了一圈,下一层的才走了一格。

 

类似手表的机制, 比较适合任务数量比较多的定时任务场景,它的任务写入和执行的时间复杂度都是 0(1)。

四.分布式任务

上述的大部分方案为单机情况下使用,如果需要分布式场景下的分片和高可用的话,需要用到分布式任务的调度框架。

涉及到下面的角色:

任务:执行的具体任务

调度器:需要有调度中心,任务由调度中心管理再分配

执行器:接受调度器执行任务

4.1 Quartz 

 

标签:复杂度,调度,任务,时间,设计,定时,分布式
From: https://www.cnblogs.com/developS/p/17641679.html

相关文章

  • 基于大数据的新冠肺炎疫情下社会风险感知与预警-计算机毕业设计源码+LW文档
    摘要新冠肺炎疫情的爆发给全球带来了巨大的冲击,不仅对人们的生命健康造成了威胁,也对社会经济和政治稳定带来了风险。在这种情况下,社会风险感知和预警变得尤为重要。本文基于大数据的方法,探讨了新冠肺炎疫情下社会风险感知和预警的相关问题。本文介绍了大数据在社会风险感知和预......
  • 剖析MongoDB数据库:理解NoSQL设计模式、优化查询性能和数据安全性
    MongoDB是一个流行的NoSQL文档数据库,它使用JSON样式的文档存储数据。本文将对MongoDB进行剖析,包括NoSQL设计模式、优化查询性能和数据安全性。NoSQL设计模式文档数据库MongoDB采用文档数据库的设计模式,即将相关数据保存在单个文档中,而不是将其拆分成多个表。这种设计模式使得数......
  • 如何用CSS实现响应式设计并优化用户体验
    在移动设备的时代,网站的响应式设计变得越来越重要。响应式设计的目标是使网站适应不同尺寸和分辨率的设备,并提供最佳的用户体验。本文将介绍如何使用CSS实现响应式设计并优化用户体验。使用媒体查询设置CSS样式媒体查询是CSS3中的一个强大的特性,可以根据不同的媒体类型和设备特......
  • .NET桌面程序如何设置任务栏图标右键菜单中的名称
    右键任务栏中应用程序图标时会显示程序名称,例如:这里显示的并不是程序文件名DingTalk,而是文件属性中详细信息选显卡下的“文件说明”。在.NET桌面程序中,是通过修改程序集名称(AssemblyTitle)来设置该值,c++程序则是添加版本信息设置FileDescription属性。但是,这个属性和应用程序图......
  • 某电商平台电子产品用户购买行为研究-计算机毕业设计源码+LW文档
    摘要随着计算机和互联网的普及,搜索引擎成了人们常用的工具。通过搜索引擎来查询电商网站销售信息,搜索引擎首先对关键词进行分析,然后返回查询的结果。但是随着网络信息量的急速增长,产生了大量的垃圾信息和网络广告,使得查询结果越来越困难。针对这一问题,本系统通过对网络爬虫的分析......
  • IT行业招聘数据分析与岗位推荐系统-计算机毕业设计源码+LW文档
    内容摘要随着社会经济的快速发展,人们的生活水平得到了显著提高,但随之而来的社会问题也越来越多。其中最为显著的就是就业问题。为此,招聘信息的展示也变得越来越为重要。但是在大量的招聘信息中,人们在提取自己最想要的信息时变得不那么容易,对于应聘者也是如此。本系统通过对网络爬虫......
  • 基于Python的招聘网站爬虫及可视化的实现-计算机毕业设计源码+LW文档
    开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:PyCharm浏览器:谷歌浏览器DROPTABLEIFEXISTSa6woc_zhaopinxinxi;/*!40101SET@saved_cs_client=@@character_set_client/;/!40101SETcharacter_set_cli......
  • 金融行业招聘数据分析系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着社会经济的快速发展,人们的生活水平得到了显著提高,但随之而来的社会问题也越来越多。其中最为显著的就是就业问题。为此,招聘信息的展示也变得越来越为重要。但是在大量的招聘信息中,人们在提取自己最想要的信息时变得不那么容易,对于应聘者也是如此。本系统通过对网络爬虫的......
  • windows程序如何设置开机自启动以及定时重启
    1. 通过shell:StartUp将程序设置为开机自启动的状态  2. 设置windows系统为无需登录模式 1、开始-运行,或点击Cortana搜索框,输入netplwiz,打开用户账户面板;2、点击当前使用的用户名,去掉“要使用本计算机,用户必须输入用户名和密码”复选框;没有以上复选项的解决方法 ......
  • 一文带你读懂设计模式之责任链模式
    1.前言emm,翻了一下之前刚入职时候的学习笔记,发现之前在熟悉业务代码的时候曾经专门学习并整理过过设计模式中的责任链模式,之前只是对其简单了解过常用的设计模式有哪些,并未结合实例和源码深入对其探究,利用熟悉代码契机进行系统学习并整理文档如下。2.什么是责任链模式?俗话说没......