C# 服务在特定时间向 notify/send 发送电子邮件

C# service to notify/send email at certain time

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

如果在接下来的一个小时内召开会议,它将向利益相关者发送一封电子邮件。

我真的不需要代码,只是想要一点 head-start 并了解我是否可以使用 ASMX Web 服务,或者是否有更好的方法来执行此操作。从我读过的所有教程来看,Web 服务似乎只提供可供调用的函数。

不需要 Web 服务,除非您计划让您的客户 (web/mobile/windows) 调用该服务来检查下一个小时内将举行哪些会议,或者您的 app/job 是否会检查对于会议调用 Web 服务来处理电子邮件的发送。如果您尝试向您的客户 (web/mobile/windows) 发送推送通知而不是拉取通知,那么您可能希望使用 WebSockets 之类的东西来保持与服务器的连接打开并让服务器推送当有新的会议可用时通知回客户端。如上所述,正如您所了解的那样,Web 服务提供了调用 "function"(模型)remotely/out 进程的能力。

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

如果您需要通过更多的解耦来扩大规模,您可以找到一份工作,只需查看 new/within 您需要的时间段内的会议数据。您可以拥有一个消息系统,例如 Kafka、运行ning,而不是发送电子邮件的作业,您可以将这些消息发送到该系统。那时你设置了一个简单的应用程序,它会从消息传递系统读取消息来处理它并发送电子邮件。毫无疑问,这是一个更大的设计和实现,但它会在工作流灵活性、扩展和消息传递用于其他方面为您提供更大的灵活性。

所以我决定使用 Window 服务,该服务将使用计时器每 30 分钟 运行。它将检查一个小时内举行的会议并发送通知(电子邮件)。

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

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