繁体   English   中英

Cron工作asp.net

[英]Cron job asp.net

我有一个clockIn&clockOut模块,它记录来自Asp.NET应用程序的工作人员的开始时间和结束时间。

我想问问如何为asp.net应用程序执行cron作业,以查看工人是否尚未输入该日期或星期的时间,并发送电子邮件通知以提醒他们输入开始时间和结束时间。

ASP.NET是完成此工作的错误工具。 您最好编写在计划任务上运行的控制台应用程序 ,或者编写定期轮询的Windows服务 ASP.NET纯粹是用于请求/响应模型。

任何人都可以像ASP.NET网站一样轻松地访问网站正在读取/写入的任何数据存储。

如果您未完成任何操作,则“控制台应用程序”是迄今为止最简单的编写和实现。 与控制台应用程序可能的XCOPY部署模型相比,Windows服务并没有那么糟糕,但是会带来额外的开销,其中包括调试困难以及需要经过特殊的安装过程

如果您确实要在ASP.NET中执行此操作,则可以编写一个执行此操作的asp.net网页,然后使用Windows Scheduled Task运行它。 计划任务可以将Internet Explorer打开到特定页面,就像它可以运行任何可执行文件一样容易。 但是我不推荐它 任务完成后,您将永远不得不关闭IE窗口,这实际上是一个“棘手的”解决方案。 当我还是一名纯粹的Web开发人员时,我做的还不错,但后来再也不知道了。

Jeff Atwood在本网站的早期发布在Stack Overflow博客上,标题为ASP.NET中的Easy Background Tasks,内容涉及在ASP.NET中执行后台任务的简单方法。 如果您的任务比较轻巧,这可能不是一个坏方法。 如果您真的有理由将所有内容保留在现有的ASP.NET应用程序中,则可以采用这种方法。

要点:

  1. 在启动时,将具有固定到期时间的项目添加到HttpRuntime.Cache。
  2. 当缓存项过期时,请执行您的工作,例如WebRequest或您拥有的东西。
  3. 将项目重新添加到具有固定到期时间的缓存中。

尽管从技术上来说,这并不是一项繁琐的工作,但是您可以从网站内部在一天的X时刻让该网站调用设置页面。

我已经通过Web方法调用完成了几次,该方法是从应用程序启动时在计时器上调用的。

基本说明在这里: 用代码从c#调用网页

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM