如何在ASP.NET/WCF中定期执行某些操作

本文关键字:执行 操作 WCF ASP NET | 更新日期: 2023-09-27 18:20:39

首先很抱歉问了这么一个愚蠢的问题,我是asp.net的新手。

所以,我应该定期做一些事情,比如说我是heartpatients.com网站的所有者(假设),我希望每个访问该网站的网站用户在2小时后都能看到一条消息"吃药"。所以,基本上这就是我的全部问题,我应该如何在每2小时(或4,6,无论什么时间)之后显示这条消息,以及我如何自定义时间
还有一件事,比如说,如果我在WCF服务中有这个方法,它显示了这个消息,我如何在特定的时间调用该服务,甚至是由用户配置的(比如有人在10小时后服用药片?)那么,在用户指定的时间周期性过去后,如何调用该服务(服务中的特定方法)?

我希望我的问题说得很清楚
感谢您的帮助。

如何在ASP.NET/WCF中定期执行某些操作

ASP.NET通常不适合作为任务调度程序。网络的本质是一个请求/响应系统。因此,web应用程序应该只是坐着等待请求,生成响应,然后完成。

对于任何类型的后端调度任务,我都建议:

  1. Windows服务
  2. 计划运行的控制台应用程序(我认为Windows附带了任务调度程序)

无论哪种方式都有利弊。例如,Windows服务将从启动时开始运行,并且没有控制台UI,从服务器的角度来看,它通常非常易于管理。而控制台应用程序传统上更易于编写和调试。

这些仍然可以共享您的web应用程序中的代码。如果您的业务逻辑和数据访问以及所有这些好东西都在它们自己的项目/程序集中,那么这些其他应用程序也可以使用这些程序集。(当然,如果你的web应用程序中的所有内容都是UI绑定的,那就完全是另一个问题了。)

我最担心的是…您计划如何向用户显示此消息?用户只是一次在你的网站上坐上几个小时,你需要提醒他们吃药吗?或者你打算发一封电子邮件什么的?也许你举的例子并不能真正解释你想做什么?我不确定。

在后台运行任务是一回事,但在我看来,你的整个等式(向用户显示消息)的一半都有点呆滞,没有经过深思熟虑。

查看Quartz.Net:http://quartznet.sourceforge.net/

它使您能够使用cron表达式调度要运行的任务:http://en.wikipedia.org/wiki/Cron