为计划任务优化coldfusion资源

为计划任务优化coldfusion资源,coldfusion,scheduled-tasks,Coldfusion,Scheduled Tasks,我的任务是优化一些运行数小时的计划任务。其中一项任务贯穿1995年至今的数据。我的第一个想法(除了修改查询等)是多年来创建一个cfloop,并每年开始一个线程 这是一个好方法吗?有没有更好的方法来分配这类任务的工作量 在优化任何东西之前,你真的需要找出什么是慢的。否则,您可能会花费大量时间调整代码以获得相对较小的收益。数据库通常是瓶颈,但您需要首先找到它 在一个简单的级别上,您可以启用调试(在dev机器上)并查看花费的时间。还有像聚变反应堆这样的工具,可以让你有更多的洞察力。或者,您可以只向脚本

我的任务是优化一些运行数小时的计划任务。其中一项任务贯穿1995年至今的数据。我的第一个想法(除了修改查询等)是多年来创建一个cfloop,并每年开始一个线程


这是一个好方法吗?有没有更好的方法来分配这类任务的工作量

在优化任何东西之前,你真的需要找出什么是慢的。否则,您可能会花费大量时间调整代码以获得相对较小的收益。数据库通常是瓶颈,但您需要首先找到它

在一个简单的级别上,您可以启用调试(在dev机器上)并查看花费的时间。还有像聚变反应堆这样的工具,可以让你有更多的洞察力。或者,您可以只向脚本添加一些
调用,然后分析它们以识别慢块。无论你决定用哪种方式去做,你都需要知道你的努力最好用在哪里

其他一些想法

  • 数据有变化吗
如果没有,则编译数据一次并存储它,这样计划的任务就不必每次都重做工作

  • 您使用的是哪个版本的CF

如果不小心,可能会耗尽线程—如果您的服务器正在运行其他东西,这将特别糟糕。但是,是的,线程可能是解决方案的一部分。

我将首先寻找一种方法,将正在处理的数据限制为自上次运行作业以来已更改的数据。接下来,我将看看这些作业是否可以从ColdFusion转移到数据库调度作业。我曾想过检查数据是否更改,不幸的是数据库没有得到很好的保存。我能做的最好的事情可能是请求管理它的公司在数据中添加一个最近更改的列。CF Standard edition的线程数量有限。认为添加该列是个好主意-祝你好运:)@PatrickSchomburg-是的,听起来能够识别添加/更改的数据比其他任何东西都更有助于改进流程。