Uncode-Schedule

分布式调度任务

有些话、适合烂在心里 提交于 2020-10-29 06:01:41
1什么是分布式任务调度 1.1任务举例-定时任务 1.1.1实际案例 1.1.1.1网贷-日终任务 1.1.1.2其它业务-全日频繁 1.1.1.3 Crontab、shell 1.2产生问题 PK 解决问题 1.2.1迎面遇到第一个问题:集群重复执行 每台虚机在同一时间都会执行定时任务: Tomcat Nginx Tomcat 尝试解决:将任务单独拆出放入一台虚机(TASK)。 Nginx Tomcat TASK Tomcat 产生新的问题: 1.即便TASK 100%可靠永远不宕。也有极大的停机风险,不确定在停机期间是否有任务被遗漏( misfire )。 2.任务更多,更复杂,占越来越多的资源,性能问题凸显,任务队列阻塞风险。 1.2.2Quartz集群 Nginx Tomcat Tomcat DB(quartz) 之后看了眼quartz官方logo,感觉自己萌萌的。 1.2.3管理、调度任务产生问题 萌不过三天。发现这个定时任务策略要修改, 同样,下面这个任务不需要做,取消掉 也无法及时监控:报错了吗,运行成功了吗? 随着业务发展暴露出越来越多的问题: 例如: ---- 截图摘自沈建林“分布式调度系统介绍”中的五个问题 1.2.4解决问题 解决问题 解决问题 集思广益造轮子: Quartz,Xxl-job,elastic-job,tbschedule,uncode

分布式定时任务框架---Uncode Schedule

孤人 提交于 2019-11-27 02:29:32
分布式定时任务框架---Uncode Schedule rabbitGYK 关注 2016.11.27 20:36* 字数 1446 阅读 7141评论 5喜欢 36赞赏 1 博客原文 作为一个支付公司的项目组,经常会有很多对账功能(签约对账、支付订单对账、记账对账),这些都是以定时任务的形式实现,组内经常需要维护一些定时任务,在使用过程中主要关注定时任务的稳定性、健壮性和可控性, 分布式定时任务+任务监控 基本满足使用需求。 定时任务的现状 就定时任务来说,首先是操作系统层面一直支持的功能,所以我们的各种对定时任务的实现手段才能得以发挥。由于操作系统和编程语言种类繁多,本文中将重点从linux操作系统、java语言以及java生态中开源框架来介绍定时任务。 1. linux系统级的定时任务执行器:crontab 这是一个系统级的定时器,具有灵活简单的特性,同时也是缺乏管理功能和分布式支持。一般的使用方法是,使用shell脚本调用业务实现jar包。 2. java语言中的定时器:java.util.Timer 这是一个java语言内置的定时器,这是所有基于java语言的开源框架实现的基础。其中,典型的任务调度方法: public void schedule(TimerTask task, long delay); public void schedule(TimerTask