2016-06-22 3 views
1

Мы внедрили MVC-версию инфраструктуры Facebook BigPipe и запускаем всплески памяти, которые, по-видимому, связаны с висячей нитями BigPipe. Эти всплески заставляют наши производственные машины перезапускаться каждые несколько часов. Если вы не знакомы с BigPipe, это основная суть:Как убить ответные потоки, если пользователь перешел от страницы запроса

BigPipe is a fundamental redesign of the dynamic web page serving system. The general idea is to decompose web pages into small chunks called pagelets, and pipeline them through several execution stages inside web servers and browsers.

Это в основном позволяет клиенту запрашивать и отобразить страницу, как pagelets становятся доступными, а не ждать, пока весь ответ вернуться. Это достигается путем многократного повторения ответа из нескольких потоков на стороне сервера. Мы считаем, что проблема может быть вызвана тем, что люди заходят на нашу страницу на панели инструментов (которая использует bigpipe), но оставляют страницу до того, как будут поданы все страницы. Мы полагаем, что это может оставить эти темы висящими без каких-либо причин, чтобы фактически отправить ответ.

Есть ли способ убить выполнение кода, если клиент перестает ждать ответа? Или есть способ установить тайм-ауты на потоки, которые висят?

ответ

0

Единственный намек (что я знаю) для обнаружения этого состояния запрашивает Reponse.IsClientConnected

Смежные вопросы