Cron job asp.net

0 c# sql sql-server asp.net cron

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

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

Dav*_*vid 15

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

任何人都可以访问网站正在读取/写入的任何数据存储,就像ASP.NET站点一样容易.

如果您还没有这样做,那么控制台应用程序是最简单的编写和实现.Windows服务并不是那么糟糕,但涉及额外的开销,包括调试困难,以及与可能使用控制台应用程序的XCOPY部署模型相比,需要经历特殊的安装过程.

如果您真的想在ASP.NET中执行此操作,可以编写一个执行此操作的asp.net网页,并使用Windows计划任务来运行它.计划任务可以像运行任何可执行文件一样轻松地将Internet Explorer打开到特定页面. 但我不推荐它.当任务完成时,你将永远不得不关闭IE窗口,这真的是一个"hackish"解决方案.当我是纯粹的Web开发人员并且不知道更好的时候我做了回来,但从那以后就没有了.


Chr*_*mer 6

Jeff Atwood在Stack Overflow博客上发布了一篇名为" ASP.NET中的简单后台任务 "的博客,该博客在该网站的早期阶段就在ASP.NET中执行后台任务的简单方法.如果您的任务相对轻量级,这可能不是一个糟糕的方法.如果您有理由真正想要将所有内容保留在现有的ASP.NET应用程序中,那么这可能就是您的选择.

要旨:

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