定时任务
文章平均质量分 74
骑个小蜗牛
个人日常学习随笔记录
展开
-
Springboot @Scheduled实现原理
文章目录实现原理1.开启计划任务ScheduledAnnotationBeanPostProcessor2.创建任务并放入到任务列表依次加载所有的实现Scheduled注解的类方法将对应类型的定时器放入相应的定时任务列表中3.执行定时任务任务列表提交到线程池,任务开始定时执行定时任务线程池执行原理注意事项实现原理1.开启计划任务@EnableScheduling注解用于开启计划任务。 @Target({ElementType.TYPE}) @Retention(RetentionPoli原创 2022-01-19 22:34:08 · 9611 阅读 · 0 评论 -
基于数据库的动态定时任务
文章目录1.实现原理2.源码解析数据库表实体类任务类调度配置类操作数据库Service定时任务初始化类刷新定时任务接口类3.注意事项1.实现原理@EnableScheduling开启任务调度;自定义调度线程池;数据库定义定时任务;启动完成时,加载数据库定时任务并提交到线程池;调用接口触发线程池中任务的更新(新增、删除、修改);2.源码解析数据库表CREATE TABLE `timed_task` ( `id` bigint(20) NOT NULL COMMENT '主键',原创 2022-01-25 22:01:45 · 20459 阅读 · 1 评论 -
定时任务相关:ScheduledTaskRegistrar类源码解析
目录调度任务注册器参数任务调度器相关方法各种类型任务相关方法任务执行相关方法其他方法调度任务注册器参数public class ScheduledTaskRegistrar implements ScheduledTaskHolder, InitializingBean, DisposableBean { // 任务调度器 private TaskScheduler taskScheduler; // 本地执行器 private ScheduledExecutorService localEx原创 2022-01-25 22:00:11 · 10911 阅读 · 1 评论 -
@Scheduled注解详解
文章目录1.注解源码2.注解参数3.示例cronzonefixedRatefixedRateStringfixedDelayfixedDelayStringinitialDelayinitialDelayString1.注解源码@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Repeatable(Schedules.class)pub原创 2022-01-25 21:57:47 · 17850 阅读 · 0 评论 -
分布式定时任务方案比较
常见开源方案quartz、elastic-job、xxl-job、opencron、antares等quartzquartz通过在数据库中配置定时器信息, 以数据库悲观锁的方式达到同一个任务始终只有一个节点在运行。优点:保证节点高可用, 如果某一个节点挂了, 其他节点可以顶上。缺点:同一个任务只能有一个节点运行,其他节点将不执行任务,性能低,资源浪费。当碰到大量短任务时,各个节点频繁的竞争数据库锁,节点越多这种情况越严重。性能会很低下。quartz 的分布式仅解决了集群高可转载 2021-12-06 11:15:52 · 8373 阅读 · 0 评论