【问题标题】:What's the best solution to execute scheduled tasks for later?以后执行计划任务的最佳解决方案是什么?
【发布时间】:2021-10-13 19:53:54
【问题描述】:

这实际上不是一个与代码相关的问题,而是一个面向解决方案的问题。

为了提供一些上下文,我有一个带有无服务器 Node.js 后端的 Web 应用程序,它允许用户定义一个重复的时间段,在该时间段内端点将执行并执行某些操作。例如,用户决定每 9 天触发一次操作。

我非常了解诸如 GCP Cloud Tasks(这是我目前正在使用的)和 AWS SQS 等解决方案,但它们有局限性。例如,GCP 的 Cloud Tasks 的最大计划限制为 720 小时(30 天)。这意味着我的用户只能在未来 720 小时内的某个日期安排任务,而我更愿意让他们灵活地安排最长一年的任务。

目前是否有允许我执行此类功能的云解决方案?

我怀疑这绝对是可能的,因为 Stripe 的订阅。它们允许按年订阅,这与我使用的类似,但有更大的限制。我不确定 Stripe 工程师是如何在幕后实现这一点的(同时保持可扩展性作为一项要求,因为 cronjobs 非常昂贵),但是在谷歌搜索解决方案无济于事之后,这个问题让我想知道是否存在更合适的解决方案,或者是否存在更合适的解决方案我的解决方案很好。

我也知道有一些变通办法可以“延长”云任务 720 小时限制,但我想在深入研究这些变通办法之前先探索选项。 (例如,每个用户的 Cronjobs 可以很好地工作,但在规模上会很昂贵,一个 cronjob 检查当天所有要安排的任务,但在规模上,云功能可能会超时,因为我使用的是无服务器后端等)

【问题讨论】:

    标签: node.js google-cloud-platform cloud scheduled-tasks


    【解决方案1】:

    你应该看看cloud Workflow。对于每个用户请求,使用参数启动执行,它们可以是“延迟”或“要调用的 URL”;定义你需要的那些。

    因此,当执行开始时,等待延迟,然后调用 URL。一次执行可以持续到1 year,符合您的要求

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      相关资源
      最近更新 更多