在.Net中创建提醒服务的最佳方法是什么?

时间:2010-02-26 02:13:24

标签: c# .net service reminders

我希望构建一个允许用户管理简单任务或待办事项的Web应用程序。作为其中的一部分,我想每天向用户发送电子邮件提醒任务。我希望系统中的每个用户都可以指定他们获取提醒的时间。例如,一个用户可以指定在上午8点收到他们的电子邮件,而另一个用户可能选择在晚上7点收到他们的电子邮件。使用.Net,构建和提供这种“提醒”服务的最佳方法是什么?此外,作为未来的一个阶段,我想将提醒扩展为SMS文本和/或其他形式的通知。

任何指导都将不胜感激。

3 个答案:

答案 0 :(得分:1)

您的问题有点广泛,但在Windows上处理重复发生的任务有两种常规方法:

  • 编写服务,并将其设计为定期检查任务。您可以让它每个量程轮询一个数据库,并执行当时的任何提醒(标记它已完成的那些)。
  • 将程序作为Windows计划任务运行(Microsoft等效于cron)。每小时运行一次,并按上述方法检查数据库。

我假设你知道如何从.NET发送电子邮件 - 这非常简单,大多数运营商都有邮件到短信网关。

答案 1 :(得分:1)

我想你可以用两种方式做到:

  • 在后台运行的Windows服务,它会轮询数据库,在当前时间查找项目,如果找不到任何内容则会休眠,循环

    这很好,但是如果在30秒内突然有1000件物品需要处理,可能无法很好地扩展,因为这样做需要很长时间。你可以通过构建MSMQ来解决这个问题,它允许在不同的机器上进行分发,等等。

  • 类似的Windows服务,但可以通过某种脉冲/等待系统进行交互,每次创建新的数据库条目时都会触发该系统。然后它可以合法地睡觉,但有点“脆弱”。

我可能会采用第一种方法。

答案 2 :(得分:0)

我会创建一个始终运行的服务,每分钟检查一次,以便执行任务。然后,您可以预先形成您需要的行动。您可以创建一个供用户使用的网站,该网站将发送到服务也读取的数据库。如果您希望获得更多的花哨,并且您的服务的WCF接口让网站转到服务并将您需要的提醒存储在数据库中。