解决集群环境下定时任务的唯一性(幂等性)问题

引子

在互联网项目中存在很多的定时任务需求,在网上也提供了很多可靠成熟的定时框架,比如说:quartz,spring-task,调度线程池和JDK的timer等. 这些框架都可以帮助实现定时任务,但是如果在项目集群的环境下,多个定时任务位于多台服务器中,如何取保证每次只有一台服务器执行定时任务呢,上述的框架目前都无法解决这个问题.

 

解决方案

市面上有几款框架是可以解决这个问题的,比如:Elastic-job,xxl-job等,在这里我们使用xxl-job作为例子进行介绍.

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

 

步骤:

1. 在github或者码云上下载源码https://gitee.com/xuxueli0323/xxl-job

解决集群环境下定时任务的唯一性(幂等性)问题_第1张图片

 

2. 剩下的都非常简单,可直接参考https://www.xuxueli.com/xxl-job/#/中文文档,写的都非常详细,只要配置好了执行器和定时任务,指定好看路由策略就可以实现定时任务的唯一问题了.

 

你可能感兴趣的:(分布式解决方案)