Spring Boot中分布式任务调度和作业队列的建议

问题描述 投票:0回答:1

要求:

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

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

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

需要考虑的因素:

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

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

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

java spring spring-boot job-scheduling job-queue
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.