【问题标题】:Reliably running hundreds of scheduled functions every minute每分钟可靠地运行数百个预定功能
【发布时间】:2019-01-18 14:52:31
【问题描述】:

我正在构建一个应用程序,该应用程序需要每分钟运行数百个短期运行任务。除了调用 HTTP 端点之外,这些函数没有做任何特殊的事情。我需要一种可靠的机制来无限期地每分钟安排这些调用。不能容忍在预定时间运行失败。我已经考虑了调度程序的以下选项:

  • AWS Lambda
  • 中间层计时
  • Cron
  • Python 芹菜

显然在成本、可维护性(我需要每隔一段时间更新这些函数的逻辑)和可靠性之间进行权衡。

我的问题是,如果我最关心一致性/可靠性,这些选项中的哪一个最合适?有没有我应该考虑的选项?

【问题讨论】:

    标签: scheduled-tasks scheduler scheduling job-scheduling distributed-system


    【解决方案1】:

    正如您已经提到的,有多种技术可以帮助您做到这一点,我想说的是,诀窍更多的是找到要使用的逻辑流程/模型。

    例如,如果任务数量不固定,则可以应用发布/订阅模式,为此可以使用 rabbitMQ 或 AWS SQS。

    关于如何将任务提交到队列以及如何出队有多种方法,您可以让多个工作人员读取/等待事件,他们可以逐个或逐块读取(基于 num每台服务器的核心数)所有这些都与您可能想要的速度和精度有关。

    我会说扩展更容易,因为如果需要更快的速度(每分钟完成所有任务的精度)只需要添加更多的工人。

    有关更多想法,请查看这篇文章 Using AWS Lambda with Amazon DynamoDB,它涵盖了基于流的模型/事件溯源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 2021-07-10
      • 1970-01-01
      相关资源
      最近更新 更多