关于春季启动中的分布式任务调度和作业队列的建议

时间:2019-04-25 13:47:12

标签: java spring spring-boot job-scheduling job-queue

要求:

在我的项目(在分布式环境中运行)中,我们要求在固定的时间安排作业,初始延迟为1分钟,如果作业执行失败,它将重试,并且最多可以重试10次彼此之间有2分钟的延迟。

我们可以实现相同功能的工具:

我可以使用 spring-retry 实现相同的所需功能。但是,有多个可用的容器(分布式环境)。 Rabbit-MQAmazon-sqsRedis-quartz之类的工具支持此功能。但是我不确定哪一个更适合springboot。

要考虑的因素:

以下是选择正确工具时需要考虑的内容:

  

分布式环境
  一致性
  容错
  易于配置
  异步处理

问题

基本上,我正在寻找类似于Java(springBoot)中与Resqueue和sidekiq ruby​​实现类似的东西。有人在他们的应用程序中实现了相同的功能吗?如果是这样,那么利弊带来的更好的选择/方式是什么。欢迎提出建议。

1 个答案:

答案 0 :(得分:0)

您可以使用易于配置的Spring RetryTemplate

您可以将SimpleRetryPolicyFixedBackOffPolicy结合使用。 可以根据您的要求(在您的情况下为2分钟)使用backOffPeriod中的SimpleRetryPolicy属性配置最大重试次数。

此重试机制很容易插入Spring Boot项目。