定时任务调度框架xxl-job

定时任务调度框架xxl-job
定时任务调度框架介绍单机Timer这是 java 自带的 java.util.Timer 类这个类允许你调度一个 java.util.TimerTask 任务。使用这种方式可以让你的程序按照某一个频度执行但不能在指定时间运行。一般用的较少。ScheduledExecutorService也 jdk 自带的一个类是基于线程池设计的定时任务类每个调度任务都会分配到线程池中的一个线程去执行也就是说任务是并发执行互不影响。Spring TaskSpring3.0 以后自带的 task配置简单功能较多如果系统使用单机的话可以优先考虑spring定时器。分布式QuartzJava事实上的定时任务标准。但Quartz关注点在于定时任务而非数据并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用但缺少分布式并行调度的功能。TBSchedule阿里早期开源的分布式任务调度系统。代码略陈旧使用timer而非线程池执行任务调度。众所周知timer在处理异常状况时是有缺陷的。而且TBSchedule作业类型较为单一只能是获取/处理数据一种模式。还有就是文档缺失比较严重。elastic-job当当开发的弹性分布式任务调度系统功能丰富强大采用zookeeper实现分布式协调实现任务高可用以及分片并且可以支持云开发。Saturn是唯品会自主研发的分布式的定时任务的调度平台基于当当的elastic-job 版本1开发并且可以很好的部署到docker容器上。xxl-job: 是大众点评员工徐雪里于2015年发布的分布式任务调度平台是一个轻量级分布式任务调度框架其核心设计目标是开发迅速、学习简单、轻量级、易扩展其在唯品会内部已经发部署350个节点每天任务调度4000多万次。同时管理和统计也是它的亮点。使用案例 大众点评、易信(IM)、京东(电商系统)、360金融(金融系统)、易企秀、随行付(支付系统)、优信二手车。我们项目选择XXL-JOB分布式任务调度平台XXL-JOB官方文档https://www.xuxueli.com/xxl-job/XXL-JOB底层使用的调度引擎是Quartz概述XXL-JOB是一个分布式任务调度平台其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线开箱即用。XXL-JOB入门案例下载XXL-JOB示例代码解压使用idea打开http://gitee.com/xuxueli0323/xxl-job创建XXL-JOB使用数据库和相关表xxl-job-admin调度中心核心负责调度任务触发统一管理的平台部署调度中心修改xxl-job-admin项目里面配置文件启动调度中心通过路径访问http://localhost:8080/xxl-job-admin默认用户名和密码 admin/123456部署执行器项目要做的具体业务事情引入相关依赖修改配置文件把执行器项目在调度中心进行注册# web port server.port8281### 调度中心部署跟地址[选填]如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行执行器心跳注册和任务结果回调为空则关闭自动注册 xxl.job.admin.addresseshttp://127.0.0.1:8080/xxl-job-admin ### 执行器AppName[选填]执行器心跳注册分组依据为空则关闭自动注册 xxl.job.executor.appnamexxl-job-executor-sample ### 执行器注册[选填]优先使用该配置作为注册地址为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。 # log config logging.configclasspath:logback.xml ### 执行器通讯TOKEN[选填]非空时启用 xxl.job.accessTokenxxl.job.executor.address### 执行器IP[选填]默认为空表示自动获取IP多网卡时可手动设置指定IP该IP不会绑定Host仅作为通讯实用地址信息用于执行器注册和调度中心请求并触发任务 xxl.job.executor.ip### 执行器端口号[选填]小于等于0则自动获取默认端口为9999单机部署多个执行器时注意要配置不同执行器端口 xxl.job.executor.port9999### 执行器运行日志文件存储磁盘路径[选填]需要对该路径拥有读写权限为空则使用默认路径 xxl.job.executor.logpathC:\\tingshu ### 执行器日志文件保存天数[选填] 过期日志自动清理,限制值大于等于3时生效;否则,如-1,关闭自动清理功能 xxl.job.executor.logretentiondays30注册到调度中心里面开发执行器项目job方法创建任务并启动任务通过图形化界面方式进行操作也可以使用代码来指定定时任务新增任务概念一句话总结把定时任务从代码里抽出来统一管理、统一调度、统一监控。核心架构执行流程分组、执行器、任务路由策略我们生产环境最常用的是轮询和故障转移。轮询用于大多数无状态的普通任务能均匀分散压力故障转移用于核心任务保证高可用。科学合理分工太难了那不成计划经济了吗科学合理的就不可能有重复资源的说法。市场经济允许有重复研究、允许浪费就是让大家有一个竞赛关系。多个模块的研究在竞争中有可能小模块把大模块就吃掉了那我们就承认小模块的领导地位由他来整合资源。干部任期制、专家循环制、大家讨论的学习平台……部门“围墙”就逐渐被拆掉了。现在我们开放讨论在讨论中思辨在思辨中学习看大家讨论的内容也是学习。https://baijiahao.baidu.com/s?id1760664270073856317wfrspiderforpc擦亮花火、共创未来——任正非在“难题揭榜”花火奖座谈会上的讲话任正非