[定时任务入门 | 青训营笔记]

181 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 14 天。

今天,我主要学习了定时任务的相关知识,简要学习了它在软件开发中的应用。

一、定时任务简介

在计算机行业中,"定时任务"是指在预先设定的时间点上自动执行的任务。通常用于自动执行重复性或周期性的任务,如每天的数据备份或每周的报告生成。

打个比方,如果我在学校搭建了一个大型OJ服务器,需要定期对数据信息进行备份。相比于人工设置一个闹铃,到点了后就手动运行命令,我们不如在定时的系统内设计一个脚本,每当到达那个指定时间的时候就自动触发特定指令以开始备份内容。

在初始状况下,我们可以写一个批处理来处理,或者在Windows/Linux的服务下来处理,后面也可以手动写一个守护进程来动态监视,并实现多线程等高级功能。

二、分布式定时任务

"分布式定时任务"是指在分布式系统中执行定时任务的技术。它通常由多个独立的计算机节点组成,每个节点都可以负责处理一部分任务。这样的系统通常更具有可靠性和可扩展性,并且可以通过负载平衡来优化系统性能。一般来说,它具有如下三个特点:

  • 平台化管理
  • 分布式部署
  • 支持海量数据

按照触发时机来分类,它还可以分类为:

  • 定时任务:在特定时间触发(例如下午4点,经典闹铃)
  • 延时任务:在一定时间后触发(例如一个小时后,就像倒计时任务)
  • 周期任务:在固定轮回内触发(例如每周六12点启动,很多备份任务都这样)

三、常见分布任务框架

该类型框架往往仅用于集团内部,开源的较少,因此下面提到的大多都是国内的框架:

  • Xxl-job
  • SchedulerX
  • TCT
  • Elastic-job
  • Saturn