我的计划任务太重了,所以我的问题是,太重的计划任务可能会降低coldfusion服务器的负担?我的意思是有时我的计划任务超过了循环限制时间,无论如何我正在寻找其他方式来做同样的事情,但不要太沉重。
答案 0 :(得分:3)
好吧,计划任务实际上只是对正常CF页面请求的自动调用。这意味着,如果您在浏览器窗口中手动调出计划任务URL,那么它也会超时吗?
请记住,服务器正在调用并运行计划任务,这意味着您可以拥有与实际用户不同的会话,CGI,请求和表单范围值。但是,您可以使用CFSETTING tag的requestTimeout属性来延长页面在超时之前完成任务所需的时间。 requestTimeout属性采用一个值,该值表示秒数,在此之后,如果没有来自服务器的请求,CF认为该页面没有响应。
但是,它在很大程度上取决于您的计划任务实际执行的内容。您可以通过各种方式将代码分解为组成部分,以便加快处理速度。也许弄清楚循环在做什么(并且确实需要做它正在做的所有事情)是一个好的开始。
答案 1 :(得分:0)
有几件事需要考虑。
首先,您的任务需要一段时间才能运行,并且当前超时。这里有一些事情需要调查:
requesttimeout
为该请求设置<cfsetting>
。要考虑的另一件事是,是否值得为您的任务运行单独的CF实例。除了你的任务超时,它也可能会减慢其他人的处理速度,同时它正在运行。你检查过了吗?对于单个任务,这可能有点过头了,但要记住,任务不需要需要由与站点其余部分相同的CF实例运行,这确实很有用。如果有很多任务会使CF实例的资源紧张,那么这是一个令人信服的案例。
总结:通过<cfsetting>
增加超时,然后审核您的代码,看看是否可以提高性能。我说的其他事情只是“奖励点”的建议。