我在体系结构设计上存在缺陷,因此想消除它。
问题陈述:我有一个CSV批量上传,其中包含100或更多行,这些行被添加到sqs中(不按顺序)以消耗和命中API,并获得响应并将其保存到mysql DB,如果失败然后它会为每个失败的api发送邮件。
但是我希望发送一封失败api的邮件而不是发送100封电子邮件
答案 0 :(得分:0)
您需要找到一种跟踪第100行(作业)处理的方法,以便最终可以执行“发送电子邮件”任务。您可以通过以下方式实现它
在新的MYSQL表中保留带有sucess_apis,failure_apis,total_apis和no_apis_completed的记录
由SQS使用者处理每个作业(行)后,将计数no_apis_completed,sucess_apis计数(如果成功),failure_apis(如果失败)加1
在处理任何作业之前,获取no_apis_completed列值,如果当前正在处理的作业是第100个,则可以发送电子邮件 OR ,您还可以将具有不同任务名称的条目汇总到SQS队列中,然后可以在SQS使用者中使模块对接收发送电子邮件类型的任务执行“发送电子邮件”操作