【发布时间】:2021-01-23 23:07:23
【问题描述】:
我正在尝试创建一个 AWS SQS windows 服务使用者,它将以 10 个批次轮询消息。每条消息都将在其自己的任务中执行以进行并行执行。消息处理包括调用不同的 api 和发送电子邮件,因此可能需要一些时间。
我的问题是,首先,我只想在可以立即处理 10 条消息时轮询队列。这是由于 sqs 可见性超时,并且接收到的消息“等待”可能会超过可见性超时并“返回”队列。这将产生重复。我不认为调整可见性超时是好的,因为仍然有可能重复消息,这就是我试图避免的。其次,我想对并行度进行某种限制(例如,最大限制为 100 个并发任务),这样就可以保留服务器资源,因为服务器中还运行着其他应用程序。
如何做到这一点?或者有没有其他方法可以解决这些问题?
【问题讨论】:
标签: c# concurrency task-parallel-library amazon-sqs