【问题标题】:Suggestions for distributed task scheduling and Job queue in spring bootspring boot中分布式任务调度和Job queue的建议
【发布时间】:2019-04-25 13:47:11
【问题描述】:

要求:

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

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

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

考虑因素:

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

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

问题

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

【问题讨论】:

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


    【解决方案1】:

    可以使用Spring的RetryTemplate,配置简单。

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

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

    【讨论】:

    • Spring retry 满足以上条件,但是在分布式环境下就惨败了。所以,我正在寻找一些在分布式环境中实现相同目标的工具。
    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 2023-03-22
    • 2018-08-08
    • 1970-01-01
    • 2015-01-06
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多