java定时任务_java分布式定时任务开发方案大总结

本文对比总结了Java的几种分布式定时任务框架,包括Quartz、Spring Batch、TBSchedule、Elastic-Job和XXL-JOB。重点分析了它们的优缺点,如Quartz的高可用性不足,Elastic-Job的弹性扩容和数据分片,以及XXL-JOB的简单管理和丰富的失败策略。推荐在不同的场景下选择合适的框架,如小型项目可以选择XXL-JOB,大型项目则考虑Elastic-Job。
摘要由CSDN通过智能技术生成

本文的主要内容是将java的几个分布式定时任务框架做个对比总结。

【框架列举】

单机

1.timer:是一个定时器类,通过该类可以为指定的定时任务进行配置。TimerTask类是一个定时任务类,该类实现了Runnable接口,缺点异常未检查会中止线程

2.ScheduledExecutorService:相对延迟或者周期作为定时任务调度,缺点没有绝对的日期或者时间

3.spring定时框架:配置简单功能较多,如果系统使用单机的话可以优先考虑spring定时器

分布

1.Quartz:Java事实上的定时任务标准。但Quartz关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行调度的功能

2.Spring batch:轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和Spring框架为基础,使开发者更容易的访问和利用企业级.服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。

3.TBSchedule:阿里早期开源的分布式任务调度系统。使用timer而非线程池执行任务调度。众所周知,timer在处理异常状况时是有缺陷的。而且TBSchedule作业类型较为单一,只能是获取/处理数据一种模式。文档缺失比较严重。

4.elastic-job:当当开发的弹性分布式任务调度系统,功能丰富强大,采用zookeeper实现分布式协调,实现任务高可用以及分片,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值