目前,我的web构建在ASP.NET Core5WebApi之上,并且它是托管在AWS (Fargate)上的。将来,它计划扩大规模。现在存在对BackgroundService的需求,因为一个API端点必须生成一些需要上传到多个感兴趣方的报表,因为报表生成和发送到3个不同的端点可能需要5-10秒甚至更长的时间,而API的客户端对这些操作的结果不感兴趣。
我的方法是:在Report表中创建列(SentTo1Side、SentTo2Side、SentTo3Site),然后使用后台服务“收集”以前放入队列的AWS队列中的消息,而web的客户端调用我的端点。发送后,我从队列中删除消息并更新SentToXSide列
我的问题是:
应该扩展我的web以使多个后台服务同时运行吗?我想是的。如何防止多个报告被发送到客户端。这就是我使用AWS Sqs的原因--在我的情况下可能甚至不需要这样做,因为我可以循环遍历数据库行来查看哪些报告没有发送)。
发布于 2022-05-24 09:03:01
在完美的场景中,您将根据吞吐量扩展后台服务(worker)。SQS可以确保一个作业被处理一次,当发生问题时,该作业将被重新处理。
应该扩展我的web,使多个后台服务同时运行?不,应该是由所需工作量引起的,因为处理请求可能比处理作业更快。
如何防止多个报告被发送到客户端。如果您做得对,会为您处理这个问题。
https://stackoverflow.com/questions/72359606
复制相似问题