我正在C#中构建一个电报机器人,部署在AWS中。电报机器人和Lambda通过网钩连接,工作良好。我需要计划在几分钟内删除一个机器人的消息,而不阻塞机器人。它必须继续接受和处理新的请求。
现在,我看到了使用Task.Delay
的解决方案。但是,AWS为执行lambda而创建的实例不会扩展,用户必须等到延迟结束才能处理队列中的以下请求。
来自正式文件
第一次调用函数时,AWS将创建该函数的一个实例,并运行其处理程序方法来处理该事件。当函数返回响应时,它将保持活动状态,并等待处理其他事件。如果在处理第一个事件时再次调用该函数,Lambda将初始化另一个实例,并且该函数同时处理这两个事件。随着更多事件的出现,Lambda将它们路由到可用的实例,并根据需要创建新的实例。当请求数量减少时,Lambda将停止未使用的实例,以释放其他函数的扩展能力。 默认的区域并发配额从1,000个实例开始。
据我所知,整个Lambda是关于将并发执行委托给AWS的。如果处理程序需要一些时间来完成请求,那么AWS将自动创建第二个实例来处理以下请求。难到不是么?
如何实现并发/配置lambda/重写代码以启用处理多个bot事件?
我已经看过AWS Step函数和EventBridges来解决问题,但是在深入研究它们之前,应该澄清没有一个简单而直接的解决方案是我错过的。
请记住,这是我在建造电报机器人和使用AWS Lambda功能方面的第一次经验。问题可能完全存在于AWS和Telegram Bot之外。
https://stackoverflow.com/questions/71111348
复制相似问题