我在 ColdFusion 8 上使用 CFTHREAD。
偶尔我发现所有线程都停止执行并保持 STATUS=NOT_STARTED
服务器监视器告诉我没有正在运行的请求,没有正在运行的线程和越来越多的排队线程。
恢复的唯一方法是重新启动 ColdFusion 实例。
我只在少数几个地方使用线程。对 CFTHREAD 的一些调用是已加入的——在这种情况下,我会终止任何在超时内未完成的线程。对 CFTHREAD 的一些调用是一劳永逸的。
有谁知道为什么会发生这种情况?
谢谢,
威廉毕比
我在 ColdFusion 8 上使用 CFTHREAD。
偶尔我发现所有线程都停止执行并保持 STATUS=NOT_STARTED
服务器监视器告诉我没有正在运行的请求,没有正在运行的线程和越来越多的排队线程。
恢复的唯一方法是重新启动 ColdFusion 实例。
我只在少数几个地方使用线程。对 CFTHREAD 的一些调用是已加入的——在这种情况下,我会终止任何在超时内未完成的线程。对 CFTHREAD 的一些调用是一劳永逸的。
有谁知道为什么会发生这种情况?
谢谢,
威廉毕比
在我的一个应用程序中,我已经面临线程挂起问题。那是因为,我的线程正在运行一些 HTTP 调用或大文件下载过程,它面临连接超时问题。
由于这个线程挂起,我们的服务器也变得非常繁忙,因为正在运行的线程获取的资源无法释放。
我的解决方案:只需检查线程运行的时间。如果它超过一个特定的时间间隔,那么我正在通过代码杀死线程。
您可以使用 ColdFusion Admin API 来终止线程。如果您想如何使用管理 API 杀死线程,请参见此处