java的定时任务解决方案

前言

       在很多应用系统中我们常常要定时执行一些任务。比如,营销系统需要定时生效活动、定时发短信、定时变更数据等等;本文主要介绍单机和分布式两大类的解决方案,并且简要介绍两类方案中的常见的应用组件或者框架,细致的场景应用分析和底层原理解析后续撰文专门分析。


概括

            如图是文章主要介绍的解决方案,单机按照原理分为三类,基于线程while和sleep实现的、基于排序容器作为任务存储的实现方案,常见就是最小堆实现的单线程的Timer、线程池的ScheduledThreadPoolExecutor,另外就是效率更高的时间轮的实现方案,代表有RingBufferWheel;单机的任务只能在单机执行,而我们现在应用架构大多是分布式,分布式的定时任务框架主要是为了在分布式场景下,解决定时任务的高可用、高并发问题应运而生,初步类三种业界比较典型的简单介绍

图 定时任务的实现方案分类
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容