Потоки ColdFusion остаются в очереди потоков NOT_STARTED

Я использую CFTHREAD на ColdFusion 8.

Иногда я обнаруживаю, что все потоки перестают выполняться и остаются с STATUS=NOT_STARTED

Монитор сервера сообщает мне, что нет ни запущенных запросов, ни запущенных потоков, ни увеличивающегося количества потоков в очереди.

Единственный способ восстановления - перезапустить экземпляр ColdFusion.

Я использую темы только в нескольких местах. Некоторые вызовы CFTHREAD ПРИСОЕДИНЕНЫ - в этом случае я прекращаю любые потоки, которые не были завершены в течение тайм-аута. Некоторые звонки на CFTHREAD - это огонь и забыл.

Кто-нибудь знает, почему это может происходить?

Спасибо,

Уильям Бибби

1 ответ

В одном из моих приложений я уже сталкивался с проблемой зависания темы. Это потому, что мой поток выполнял какой-то HTTP-вызов или процедуру загрузки огромного файла, он столкнулся с проблемой тайм-аута соединения.

Из-за зависания этого потока наш сервер также становится очень занятым, потому что ресурсы, полученные запущенным потоком, не могут быть освобождены.

Мое решение: просто проверьте, сколько времени работает поток. Если это больше, чем определенный интервал, тогда я убивал поток по коду.

Вы можете использовать API администрирования ColdFusion, чтобы убить поток. Если вы хотите, как убить поток с помощью API администратора, смотрите здесь

Другие вопросы по тегам