Web应用程序的计划任务

时间:2008-08-22 20:22:47

标签: scheduled-tasks

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

11 个答案:

答案 0 :(得分:4)

杰夫在Stack Overflow博客上讨论过这个问题 - http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

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

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

在Linux下,checkout cron。

答案 1 :(得分:3)

如果我们正在谈论Microsoft平台,那么我总是开发一个单独的Windows服务来处理这样的批处理任务。

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

如果你在Linux主机上,你几乎肯定会使用cron

答案 4 :(得分:1)

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

使用wget或curl等URL提取程序发出HTTP GET请求。

使用身份验证保护您的网址,以便在不知道用户/密码的情况下,任何人都无法执行任务。

答案 5 :(得分:1)

我认为Windows的内置任务计划程序是这项工作的建议工具。这需要外部申请。

答案 6 :(得分:1)

这可能是您正在寻找的,也可能不是,但请阅读本文“Simulate a Windows Service using ASP.NET to run scheduled jobs”。我认为StackOverflow可能会使用这种方法,或至少谈到使用它。

答案 7 :(得分:1)

我工作的一个非常简单的方法是:

  1. 设置执行任务的webservice / web方法。如果需要,可以使用用户名/密码保护此Web服务。
  2. 创建一个调用此Web服务的控制台应用程序。如果需要,您可以让控制台应用程序发送参数和/或获取某些指标,以便输出到控制台或外部日志记录。
  3. 在所选的任务计划程序中安排此可执行文件。
  4. 它不漂亮,但它简单可靠。由于控制台应用程序本质上只是告诉应用程序执行其工作的心跳,因此不需要与应用程序共享任何库。这种方法的另一个优点是,在需要时手动启动是相当简单的。

答案 8 :(得分:1)

  
    

使用wget或curl等URL提取程序发出HTTP GET请求。

         

使用身份验证保护您的网址,以便在不知道用户/密码的情况下,任何人都无法执行任务。

  

例如,您也可以告诉cron直接运行php脚本。并且您可以设置PHP文件的权限以防止其他人访问它们或更好,但是没有这些实用程序脚本在Web可访问的目录中...

答案 9 :(得分:1)

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

答案 10 :(得分:0)

我认为有比使用cron(Linux)或Task Scheduler(Windows)更简单的方法。您可以使用以下方法将其构建到您的Web应用程序: (a)石英调度程序,

或者如果您不想将另一个第三方库集成到您的应用程序中: (b)在启动时创建一个使用标准Java'java.util.Timer'类来运行任务的线程。