在Windows 2003服务器上,我想要一个每3分钟调用一次VBS页面的计划任务,在我的网站应用程序中运行脚本。网站脚本是用经典的ASP编写的,并检查上传的文件,这些文件可以转换成不同的大小和格式,因此根据涉及的文件数量,这可能是一个漫长的过程 - 这就是为什么我选择了后台流程。
我想知道的是:如果我的服务器运行一个计划,找到一大堆照片并开始处理它们,如果另一个计划在3分钟后运行,调用相同的ASP页面,前一个任务是仍在运行?这会影响上一个任务,还是会在新实例中与其他任务一起运行,可以这么说?如果它确实并存,那不会是服务器密集型的吗?我应该构建一个管理任务的数据库表,在任务处理时将通道设置为“忙”,在完成任务时将其重置为“打开”,这样一次只能处理一个任务吗?
我担心我必须一次处理一个任务,就我而言,一次只能处理一个照片文件夹。当我的办公室上传照片,对客户非常重要的照片时,他们需要尽快在网站上发布。因此,如果有100个文件夹,只是上传了,当计划任务到达文件夹100时,处理一个任务,那将是几个小时之后。
我知道那里有很多问号,但它们都归结为同样的事情:)任何帮助或建议都会感激不尽。我也将它标记为.NET,因为我确信这个过程是一样的。
答案 0 :(得分:0)
一个简单的解决方案:
当计划任务开始时,让它尝试排他地锁定虚拟文件。
如果获得排他锁,请继续。
如果没有,请不要做任何事情并退出。任务将在下一个预定时间再次启动。