【问题标题】:How to limit concurrency with scheduled rule如何使用预定规则限制并发
【发布时间】:2021-02-12 04:23:54
【问题描述】:

以下场景:
我有一个 lambda (L1),它是由多个服务 (s1, s2, ... sN) 通过配置了 cron 的 scheduleRule(r1 ,r2 , ... rN) 触发的。 问题是两个 L1 类型的 Lambda 由同一个服务通过同一个 scheduleRule 触发,决不能同时运行。因此,由s1 超过r1 触发的 lambda,如果在下一次计划执行之前尚未完成,则可能不会再次启动。 应该允许不同服务通过不同规则触发的两个 Lambda 同时运行。

目前我能想到的唯一可能是在规则和 lambda 之间放置一个SQS

有更优雅的解决方案还是SQS 听起来实用?

【问题讨论】:

  • 这个“感觉”像是一种反模式。 Lambda 意味着是无状态的,因此创建诸如此类的依赖项是违反规定的。上面听起来的编排工作应该利用步进函数。

标签: amazon-web-services aws-lambda amazon-sqs


【解决方案1】:

如果有正在运行的进程,您可以使用 Dynamodb 来存储状态信息。它非常快。请记住启用强一致性读取

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多