前言
在很多应用系统中我们常常要定时执行一些任务。比如,营销系统需要定时生效活动、定时发短信、定时变更数据等等;本文主要介绍单机和分布式两大类的解决方案,并且简要介绍两类方案中的常见的应用组件或者框架,细致的场景应用分析和底层原理解析后续撰文专门分析。
概括
如图是文章主要介绍的解决方案,单机按照原理分为三类,基于线程while和sleep实现的、基于排序容器作为任务存储的实现方案,常见就是最小堆实现的单线程的Timer、线程池的ScheduledThreadPoolExecutor,另外就是效率更高的时间轮的实现方案,代表有RingBufferWheel;单机的任务只能在单机执行,而我们现在应用架构大多是分布式,分布式的定时任务框架主要是为了在分布式场景下,解决定时任务的高可用、高并发问题应运而生,初步类三种业界比较典型的简单介绍