gpt4 book ai didi

c# - 电子邮件通知架构问题

转载 作者:太空狗 更新时间:2023-10-30 01:25:30 24 4
gpt4 key购买 nike

我们正在寻求开发一种电子邮件通知服务,可以根据我们系统中发生的某些操作(用户注册)或例如每周五发送的摘要电子邮件,每天、每周或每小时安排电子邮件。

确保不发送重复电子邮件的最佳方式是什么?我们考虑过让应用程序在系统操作发生时向队列中写入一条记录,但这似乎还有一个失败点。或者可能只是让所有通知数据驱动,例如,选择创建日期大于现在的所有用户。但是在这种情况下,我们需要一种方法来确保服务是否再次运行,不会发送重复的电子邮件。

任何想法都会很棒!

最佳答案

我的 2 美分

1) 队列。队列非常适合您希望具有“单入口和单导出”类型架构的任务。队列解耦系统并允许您对系统进行负载平衡。它们通常在一端和另一端与 多个 worker 一起使用。您只需将(可能很多)消息添加到队列中,然后运行批量 出队。 IMO 是不合理的内存和资源消耗。

2) 通过用户数据驱动。实现起来要容易得多,但是对于每个通知,您将检查每个 用户,并且会给数据库带来沉重的负担。

3) 通过 UserNotifications 数据驱动。或者,您可以创建一个单独的表 UserNotifications,每个用户在注册后都会被添加到其中。在给定的时间范围内选择所需的用户要容易得多,并且您不会将它们存储在内存中。发送通知后,您将从 UserNotifications 表中删除该用户。

关于c# - 电子邮件通知架构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6800957/

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