有或没有单独的Web /桌面应用程序,为Web应用程序创建计划任务有哪些不同的方法?
答案 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)
我工作的一个非常简单的方法是:
它不漂亮,但它简单可靠。由于控制台应用程序本质上只是告诉应用程序执行其工作的心跳,因此不需要与应用程序共享任何库。这种方法的另一个优点是,在需要时手动启动是相当简单的。
答案 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'类来运行任务的线程。