首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在会议开始前3小时向每位与会者发送通知

在会议开始前3小时向每位与会者发送通知
EN

Software Engineering用户
提问于 2014-12-09 23:06:45
回答 2查看 695关注 0票数 1

让我们假设一个处理一些用户将参与的会议的应用程序。

实现这个用例的有效方法是什么?

在会议开始前3小时,应向每位与会者发送一封提醒邮件。

很容易根据事件触发通知,比如创建或取消任何会议。然而,等待"3小时前“并不是一个event..because,每个会议都有自己的开始日期。

一种简单的方法(当然不是执行)是有一个后台进程,它查询存储(例如数据库),以便查找“在3小时内”与规则匹配的事件,而不是用某种processed标记。

很高频率的会议.这种过程很可能效率低下(不引起对数据库的巨大影响),以确保精确的3小时(即使是5分钟)。

有什么想法吗?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2014-12-10 00:31:53

我不确定一个进程每5分钟会对数据库产生什么“巨大的影响”。

想必,你有某种表格来存储你的会议和会议的开始时间。应该相对容易地为存储开始时间的列建立索引,并编写一个查询,查找所有设置为3小时至3小时5分钟之间开始的会议,该查询将相对较快地返回少量记录。在本表中添加一列,以表明是否发送了提醒,或者更好的是创建一个表,将会议映射到个人,并跟踪是否通知了个人(3小时窗口后可能会将人添加到会议中),这会使逻辑变得有点复杂,但同样的原则也适用--您应该能够以一种相对快速地获取所需数据子集的方式对数据进行索引。

如果您确实非常注重性能,那么您的DBA (或后端开发人员)可能有大量的优化此类查询的选项。这可能取决于所选择的特定技术( Server中的索引视图、Oracle中的物化视图等)。

票数 7
EN

Software Engineering用户

发布于 2014-12-10 09:56:45

最有效的方法是客户端应用程序负责发送电子邮件,以便在启动时查询DB并记住下一个会议时间。它会睡到3小时前,然后醒来并发送电子邮件。

然而,应用程序还必须被告知会议日程的更改--或者添加或删除的会议,并相应地更新其下一个唤醒时间。通常,在每次更新时读取下次会议时间。如何通知更改的应用程序取决于您--我将重用应用程序作为会议数据的入口点,因此所有会议更改、添加或删除都发送到应用程序进行处理,然后应用程序将更新存储在DB中(毕竟,必须做一些事情,最好是这个应用程序)。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/265013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档