我有网络应用程序(asp.net mvc3,.net 4),我正在尝试实施电子邮件通知服务。
基本上,有一个包含日期时间/内容的表和一个发送电子邮件的用户, 当我们到达桌上的那个日期时间时,我想发送通知电子邮件。
如果有某种背景,我不确定应该如何实施 不断检查数据库的线程?我觉得这样效率很低。
你能建议一些方法吗?
答案 0 :(得分:3)
您需要在某个系统上运行的服务或预定作业(之前我已经完成了这项工作;我有共享主机,并编写了一个我计划定期在家用计算机上运行的小应用程序)。您可以让此过程为您执行通知,也可以在控制器上执行操作,这将触发它们被发送出去。
似乎让服务查询您的数据库并发送通知是最直接的途径。但是,有一些原因可能导致MVC应用程序中的操作更合适,例如无法远程访问数据库或SMTP服务器。
您可以使用Windows任务计划程序等安排作业执行应用程序(例如控制台应用程序,或者可能是CURL)。或者您可以使用Quartz.net之类的东西创建自己的服务来执行作业。
答案 1 :(得分:0)
这不是正确的做法。您应该创建一个控制台应用程序并使用内置的调度程序任务定期运行它。
作为额外参考,请参阅Ayende Rahien的this帖子