C#服务在特定时间通知/发送电子邮件

时间:2016-01-04 22:24:26

标签: asp.net-mvc web-services push-notification

我创建了一个预订会议的网站,现在我需要创建一个服务(可能是同一个项目的一部分?)来检查数据库,看看下一个小时内是否有任何会议。所以它必须每5分钟甚至15分钟运行一次。

如果会议在下一个小时内发生,它将向利益相关方发送电子邮件。

我并不真正需要代码,只是想要一点启动并知道我是否可以使用ASMX Web服务,或者是否有更好的方法来执行此操作。从我阅读的所有教程看来,到目前为止,Web服务只是让函数可以被调用。

2 个答案:

答案 0 :(得分:1)

除非您计划让您的客户(网络/移动设备/窗口)调用该服务以检查下一小时即将召开的会议,或者您检查会议的应用/工作是否呼叫,否则不需要Web服务用于处理电子邮件发送的Web服务。如果您尝试向客户端(web / mobile / windows)发送推送通知而不是拉动,那么您可能希望使用WebSockets之类的东西来保持对服务器的连接并让服务器推送在有新会议时通知客户。如上所示,就像您所说的那样,Web服务提供了远程/处理过程中调用“功能”(模型)的能力。

要安排在应用内运行的内容并不断检查数据库中是否有新的会议或会议现在在1小时内,您可以使用@stuartd建议的调度程序。然后在工作结束时,发送电子邮件。

如果你需要通过更多的脱钩来扩大规模,你可以找到一份工作,只需在你需要的时间段内查看新会议的数据。您可以使用发送这些邮件的邮件系统(如Kafka)代替发送电子邮件的作业。此时,您设置了一个简单的应用程序,该应用程序将从消息传递系统读取消息以处理它并发送电子邮件。毫无疑问,这是一个更大的设计和实现,但它将为您提供更多的灵活性,包括工作流灵活性,扩展性以及将消息传递用于其他事物。

答案 1 :(得分:0)

所以我决定选择使用计时器每30分钟运行一次的Window Service。它将对一小时内发生的会议进行检查并发送通知(电子邮件)。

要安装它,我使用Installutil tool通过命令提示符。

这是一个帮助我的教程。 Develop/Install windows service