Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.Net中创建提醒服务的最佳方法是什么?_C#_.net_Service_Reminders - Fatal编程技术网

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

C# 在.Net中创建提醒服务的最佳方法是什么?,c#,.net,service,reminders,C#,.net,Service,Reminders,我希望构建一个web应用程序,允许用户管理简单的任务或TODO。作为其中的一部分,我想每天向用户发送电子邮件提醒他们的任务。不过,我希望系统中的每个用户都能指定一天中什么时候收到提醒。例如,一个用户可以指定在上午8点收到电子邮件,而另一个用户可以选择在晚上7点收到电子邮件。使用.Net,构建和构建此“提醒”服务的最佳方法是什么?此外,作为未来的一个阶段,我想将提醒扩展到短信和/或其他形式的通知 任何指导都将不胜感激。我将创建一个始终运行的服务,并每分钟检查一次任务执行情况。然后你就可以实施你需要

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


任何指导都将不胜感激。

我将创建一个始终运行的服务,并每分钟检查一次任务执行情况。然后你就可以实施你需要的任何行动。您可以创建一个供用户使用的网站,该网站将访问该服务也从中读取的数据库。如果你想在你的服务上有一个更别致的WCF界面,让网站转到该服务并在数据库中存储你需要的提醒

您的问题有点宽泛,但有两种处理Windows上重复出现的任务的一般方法:

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

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

我想你可以通过两种方式来实现:

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

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

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

我可能会选择第一种方法