gpt4 book ai didi

email - Azure Web 作业如何连续幂等并发送电子邮件?

转载 作者:行者123 更新时间:2023-12-04 15:56:27 27 4
gpt4 key购买 nike

在网上阅读了大量有关 Azure WebJobs 的信息后,文档表明作业应该是幂等的,另一方面,博客称他们使用 WebJobs 执行“向客户收费”、“发送电子邮件”等操作”。

This documentation说在带有队列的多个实例上运行连续的 WebJob 可能会导致被多次调用。人们真的会忽视这样一个事实:他们可以向客户收取两次费用,或者发送两次电子邮件吗?

如何确保可以在扩展的 Web 应用程序上运行带有队列的 WebJob,并且消息仅处理一次?

最佳答案

我使用数据库、带有行锁的更新查询和 TransactionScope 对象来执行此操作。

在您的订单表中,创建一个列来管理您在 Web 作业中执行的操作的状态。即电子邮件发送。

在 QueueTrigger 函数中开始事务,然后对设置了 ROWLOCK 的客户订单执行 UPDATE 查询,该查询设置 EmailSent = 1 且 WHERE EmailSent = 0。如果 SqlCommand 的返回值 = 0,则退出该函数。另一个 WebJob 已发送电子邮件。否则,发送电子邮件,如果发送成功,则对 TransactionScope 对象调用 Complete()。

这应该提供您想要的幂等性。

希望有帮助。

关于email - Azure Web 作业如何连续幂等并发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30942329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com