首先抱歉提出这样一个愚蠢的问题,我是asp.net的新手。
所以,我应该定期做一些事情,说我是网站heartpatients.com的所有者(假设)我希望我的每个网站用户访问该网站,2小时后显示的消息“带你的丸”。所以,基本上这都是我的问题,我应该在每2小时(或4,6之后的任何时间)之后显示此消息,我也可以如何自定义时间。
还有一件事,比如我在WCF服务中有这个方法,它显示了这条消息,如何在特定时间调用该服务,甚至用户配置(比如有人在10小时后吃药?)那么如何在用户指定的时间后定期调用该服务(服务中的特定方法)?
我希望我的问题很清楚 任何帮助表示赞赏。
答案 0 :(得分:6)
ASP.NET通常不适合作为任务调度程序。 Web的本质是作为请求/响应系统。因此,Web应用程序应只是等待请求,生成响应并完成。
对于任何类型的后端计划任务,我建议:
无论哪种方式都有利弊。例如,Windows服务将从引导时运行,并且没有控制台UI,并且从服务器角度来看通常是非常易于管理的。虽然控制台应用程序传统上更易于编写和调试。
这些仍然可以共享您的Web应用程序中的代码。如果您的业务逻辑和数据访问以及所有好东西都在他们自己的项目/程序集中,那么这些其他应用程序也可以使用这些程序集。 (当然,如果您的Web应用程序中的所有内容都是UI绑定的,那完全是另一个问题。)
最让我担心的是......您打算如何向用户显示此消息?用户是否只是一次坐在您的网站上几个小时,您需要提醒他们服用药物?或者您打算发送电子邮件或其他什么?也许你给出的例子并没有真正解释你想要做什么?我不确定。
在后台运行任务是一回事,但在我看来,整个方程的一半(向用户显示一条消息)有点茫然而且没有经过深思熟虑。
答案 1 :(得分:2)
查看Quartz.Net:http://quartznet.sourceforge.net/
它使您可以安排使用cron表达式运行的任务: http://en.wikipedia.org/wiki/Cron