扫码阅读
手机扫码阅读

Spring Boot 整合定时任务,可以动态编辑的定时任务!

146 2024-11-28

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:Spring Boot 整合定时任务,可以动态编辑的定时任务!
文章来源:
江南一点雨
扫码关注公众号

文章摘要

松哥之前创造了一个动态编辑的定时任务,并考虑了在分布式环境中使用zookeeper或redis来支持定时任务。本文介绍了ElasticJob,一个现成的分布式作业调度解决方案,与xxljob齐名,但后者将在之后介绍。

1. ElasticJob

1.1 简介

ElasticJob是由当当开源的dd-job发展而来的Apache下的开源项目,专为互联网场景设计的分布式调度解决方案。它包含两个子项目ElasticJob-Lite和ElasticJob-Cloud,前者是轻量级无中心化解决方案,后者提供额外的资源治理等功能。ElasticJob的特点是弹性调度、资源分配和作业治理,可与Spring无缝整合,并提供易用的作业生态。

1.2 功能列表

  • 弹性调度:支持分布式场景下的任务分片和高可用,可以水平扩展任务处理能力。
  • 资源分配:合理分配资源执行任务,提供动态资源调配。
  • 作业治理:支持失效转移、错过作业重新执行和自诊断修复。
  • 作业依赖(TODO):基于有向无环图的作业间和作业分片间依赖。
  • 作业开放生态:提供可扩展的作业类型统一接口和丰富的作业类型库。
  • 可视化运维平台:提供作业管控端、作业执行历史数据追踪和注册中心管理功能。

2. 实践

通过创建Spring Boot工程并引入ElasticJob的starter来展示ElasticJob的使用。使用者可以实现SimpleJob接口创建作业,并在application.properties中配置相关参数,如注册中心、作业名称和cron表达式等。ElasticJob需要ZooKeeper作为注册中心以支持分片和高可用。

3. 运行

启动Spring Boot项目后,控制台会按配置的cron表达式打印日志。如果启动多个实例,由于分片数量的限制,只有一个实例会执行定时任务。

3. 运维平台

ElasticJob还提供了一个运维平台,使得定时任务的管理更加方便,包括添加注册中心、连接、查看作业详情和服务器信息等功能。运维平台可以通过网址访问并进行操作。

4. 小结

文章通过一个简单的案例展示了ElasticJob的使用方式,并提供了案例下载地址。

想要了解更多内容?

查看原文:Spring Boot 整合定时任务,可以动态编辑的定时任务!
文章来源:
江南一点雨
扫码关注公众号