【问题标题】:Concurrent AWS Lambdas runs more than once并发 AWS Lambdas 运行不止一次
【发布时间】:2021-02-03 06:23:38
【问题描述】:

在我的 AWS 无服务器环境中,我有一个每分钟触发一次的 LambdaA。 Lambda 使用以下代码启动 50 个名为“LambdaB”的并发 Lambda:

var listOfTasks = new List<Task<bool>>();
foreach(var item in listWith50Items)
{
    listOfTasks.Add(InvokeLambda(item, "LambdaB"));
}
return await Task.WhenAll<bool>(listOfTasks);

问题是有时每分钟触发不止一次 lambda?如何每分钟恰好触发每个项目的 Invoke,而不是更多,而不是更少......上面的代码似乎无法解决这个问题......

【问题讨论】:

  • LambdaA 是如何每分钟调用一次的?你在使用Timer吗?

标签: c# concurrency aws-lambda serverless


【解决方案1】:

另一种方法,您可以使用 CloudWatch 计划表达式,如下所述:https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html

最简单的方法是使用无服务器框架: https://www.serverless.com/framework/docs/providers/aws/events/schedule/

functions:
  lambdaA:
    handler: lambdaA
    events:
      - schedule: cron(*/1 * * * *)

这个 cron 意味着每隔一分钟 */1 * * * *

【讨论】:

  • 感谢您的想法,不知道该功能。
猜你喜欢
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 2012-07-12
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-04
相关资源
最近更新 更多