要求:
在我的项目中(在分布式环境中运行),我们要求一个作业在固定时间内被调度,初始延迟为1分钟,如果作业执行失败,它将重试,并且它可以在每次延迟2分钟的情况下进行10次最大重试。
我们可以实现同样的工具:
我可以通过spring-retry.实现相同的所需功能但是,有多个容器可用(分布式环境)。Rabbit-MQ、Amazon-sqs、Redis-quartz等工具支持这些特性。但我不确定哪个更适合弹跳。
需要考虑的因素:
以下是选择正确的工具需要考虑的内容:
分布式环境 一致性 容错性 易于配置 异步处理
问题
基本上,我在寻找类似于在Java(springBoot)中等效的Resqueue和in实现的东西。有人在他们的应用程序中实现了相同的功能吗?如果是这样的话,那么/way提供的利弊更好的选择是什么呢?欢迎提出建议。
发布于 2019-04-25 13:57:05
您可以使用Spring的RetryTemplate,这很容易配置。
在您的情况下,您可以使用带有SimpleRetryPolicy的FixedBackOffPolicy。最大重试尝试可以根据您的需求使用backOffPeriod属性配置在SimpleRetryPolicy中(在您的情况下为2分钟)。
这种重试机制很容易插入Spring项目。
https://stackoverflow.com/questions/55850821
复制相似问题