Web应用程序的计划任务

时间:2020-03-05 18:42:14  来源:igfitidea点击:

在有或者没有单独的Web /桌面应用程序的情况下,为Web应用程序创建计划任务有哪些不同的方法?

解决方案

回答

我认为Stack Overflow本身正在使用ApplicationCache到期来定期运行后台代码。

回答

如果我们使用的是Linux主机,则几乎可以肯定会使用cron。

回答

在Linux下,我们可以使用cron作业(http://www.unixgeeks.org/security/newbie/unix/cron-1.html)安排任务。

使用wget或者curl之类的URL提取程序发出HTTP GET请求。

通过身份验证保护URL,以便没有人知道用户名/密码就无法执行任务。

回答

我认为Windows内置的Task Scheduler是这项工作的建议工具。这需要外部应用程序。

回答

这可能不是我们要找的内容,但是请阅读本文"使用ASP.NET模拟Windows服务以运行计划的作业"。我认为StackOverflow可能会使用此方法,或者至少有人谈论过使用它。

回答

如果我们使用的是Microsoft平台,那么我总是会开发一个单独的Windows服务来处理此类批处理任务。

我们始终可以引用Web应用程序正在使用的相同程序集,以避免任何讨厌的代码重复。

回答

我们在工作中使用的一种非常简单的方法是:

  • 设置执行任务的webservice / web方法。如果需要,可以使用用户名/密码来保护此Web服务。
  • 创建一个调用此Web服务的控制台应用程序。如果需要,我们可以让控制台应用程序发送参数和/或者获取某种度量标准以输出到控制台或者外部日志记录。
  • 在所选的任务计划程序中计划此可执行文件。

它不漂亮,但简单可靠。由于控制台应用程序本质上只是告诉应用程序执行其工作的心跳,因此不需要与该应用程序共享任何库。这种方法的另一个优点是,在需要时手动启动非常简单。

回答

Jeff在Stack Overflow博客上讨论了此问题
http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

基本上,Jeff建议使用CacheItemRemovedCallback作为调用某些任务的计时器。

我个人认为,自动化任务应作为服务,Windows计划任务或者SQL Server中的作业进行处理。

在Linux下,结帐cron。

回答

Use URL fetchers like wget or curl to make HTTP GET requests.
    
    Secure your URLs with authentication so that no one can execute the tasks without knowing the user/password.

例如,我们还可以告诉cron直接运行php脚本。而且我们可以在PHP文件上设置权限,以防止其他人访问它们,或者更好的是,不要在可访问网络的目录中拥有这些实用程序脚本...

回答

Java和Spring-使用石英。非常好且可靠-http://static.springframework.org/spring/docs/1.2.x/reference/scheduling.html