2010-02-26 37 views
2

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

任何指导,将不胜感激。

回答

0

我会创建一个运行所有时间的服务,每分钟检查一次任务以执行预成型。然后,您可以预先执行您需要的任何操作。您可以创建一个网站供用户使用,该网站将转到该服务也读取的数据库。如果您希望获得更多的花式,并且WCF界面可以让您的服务访问该服务并将所需的提醒存储在数据库中。

1

你的问题有点广,但一般有两种方法在Windows处理重复出现的任务:

  • 写服务,设计,它定期检查任务。你可以让它每一次都轮询一个数据库,并且执行当时的任何提醒(标记完成)。
  • 将程序作为Windows计划任务运行(与Microsoft等效的cron)。每小时运行一次,并检查上面的数据库。

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

1

我想你可以做到这一点有两种方法:

  • Windows服务的背景下,其调查数据库,寻找项目,在当前的时间,如果发现没有睡觉运行,循环

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

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

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

相关问题