AWS:并发队列系统?

时间:2020-10-13 08:06:01

标签: amazon-web-services

好,所以我有几个用户希望同时执行一项任务。

任务是在lambda上执行的,需要花费几秒钟。

我想将任务的并行执行次数限制为3。

意思是如果10个用户同时调用它,则3个用户将运行3个任务,其余7个用户将进入等待队列。

一个用户的任务完成后,退出之前,在等待的队列中查找任务,从队列中提取另一个用户,并为该用户启动新任务(即发即忘),然后退出。

我需要确保没有执行重复,因此我将队列存储在小型服务器(在lightail中)和RAM中,但是我不确定这样做是否可以很好地扩展。

我可以通过无服务器方式拥有类似的工作流程吗?不确定使用SQS是否可以解决我的问题

1 个答案:

答案 0 :(得分:0)

您所要求的可以通过SQS和Lambda来实现,只需这样:

  • 将Lambda函数订阅到批处理大小为1的SQS队列中,因此一旦消息在队列中并且每次调用仅处理一条消息,该函数就会立即执行
  • 限制Lambda函数执行3个并发调用,因此并行处理的任务不超过3个