ColdFusion线程保留在线程队列NOT_STARTED中

时间:2013-11-13 11:23:56

标签: coldfusion coldfusion-8 cfthread

我在ColdFusion 8上使用CFTHREAD。

偶尔我发现所有线程都停止执行并保持STATUS = NOT_STARTED

服务器监视器告诉我没有正在运行的请求,没有正在运行的线程以及越来越多的排队线程。

恢复的唯一方法是重启ColdFusion实例。

我只在少数几个地方使用线程。对CFTHREAD的一些调用是JOINED - 在这种情况下,我终止任何在超时内没有完成的线程。对CFTHREAD的一些调用是昙花一现。

有谁知道为什么会这样?

谢谢,

William Bibby

1 个答案:

答案 0 :(得分:0)

在我的一个应用程序中,我已经面临线程悬挂问题。那是因为,我的线程正在运行一些HTTP调用或大量文件下载程序,它面临连接超时问题。

由于此线程挂起,我们的服务器也变得非常繁忙,因为正在运行的线程获取的资源无法释放。

我的解决方案:只需检查线程运行的时间。如果它超过特定的间隔,那么我就是通过代码杀死线程。

您可以使用ColdFusion Admin API来终止线程。如果您想如何使用admin API终止线程,请参阅here