我的Web应用程序中有一个日历系统。我们需要实施提醒。
是否存在任何提醒/警报模式或系统设计或最佳实践?如果可以,那么可以通过什么方式实现这一目标?
设计注意事项
到目前为止,我的设计是这样的:
但是,也许还有比这更优雅的图案?已经建立了一些东西?还是一些天蓝色的工具?
我们的堆栈是.net和azure。
答案 0 :(得分:1)
为第二天创建一个表格。添加一个触发器以在插入主表时添加提醒,并添加一个触发器(如果是同一天,以确认该工作计划在该10分钟的增量内完成,然后将其添加到每日表中,以删除提醒)
每天在非高峰时间分配作业,以提醒第二天,并安排作业在适当的时间运行。如果在批处理运行之前将其删除,则从不添加;如果在此之后,触发器将删除它们。
使用批处理脚本和触发器所安排的现有脚本,根据较小的日表发送通知。
此过程将最大程度地减少总体执行时间,同时使用最少的数据库空间。
编辑: 尽管建议的过程是对原始算法的改进,但是如果没有使用情况数据,将无法确定这是否将转化为Azure平台上的财务节省。
使用量少:这将通过消除全表查询并在不需要时每10分钟消除一次作业来提高性能,但会占用几MB的额外存储空间。
从大型到大型解决方案:批处理和触发器将通过消除10分钟查询期间的全表扫描来提高效率。
中间是建议的解决方案的50/50。
那些确切的界限在哪里,我不能说没有更多的数据。