Что такое «Продолжения Jetty 6» и как они сравниваются с продолжениями, найденными в языках программирования? - PullRequest
2 голосов
/ 30 июля 2009

Я ищу ответ, который описывает механизм «продолжения» в веб-сервере и язык программирования.

Насколько я понимаю, используя продолжения, тривиально, чтобы производитель "цифр пи" общался с потребителем "цифр пи" без явной обработки потоков.

Я слышал очень хорошие вещи о продолжениях Причала. Мне любопытно, что думают другие.

Возможно, я уже нашел свой ответ, но я все равно задаю вопрос здесь - для протокола.

Ответы [ 2 ]

2 голосов
/ 03 августа 2009

как они соотносятся с продолжениями, найденными в языках программирования?

У них нет ничего общего, кроме названия. Это всего лишь механизм освобождения текущего потока, предоставляющий Servlet API для хранения и восстановления его состояния, но все это, скорее, выполняется вручную, в отличие от реальных продолжений, где состояние автоматически выводится из текущего контекста.

Прототипным примером для случаев, когда это имеет смысл, являются многоуровневые (составные) веб-сервисы, где одному сервису нужно сделать много запросов к другим сервисам, и пока эти запросы выполняются, текущий поток освобождается. По завершении запросов (что может быть выполнено асинхронно в некоторых других потоках) вызывается метод сервлета resume, который затем собирает ответ из результатов запросов.

1 голос
/ 30 июля 2009

Согласно этой странице :

продолжения будут заменены на стандартный сервлет-3.0 подвесной запрашивает, как только спецификация завершена. Ранние выпуски Jetty-7 теперь доступны, которые реализуют предлагаемый стандарт приостановить / возобновить API

Я еще не использовал Jetty, но, похоже, что при продолжениях серверу не требуется хранить поток для каждого клиента, где обычно, когда сервер "удерживает" (я полагаю, блокирование) при отправке ответа клиенту который непрерывно опрашивает его с помощью AJAX, для каждого клиента потребуется поток, что может стать проблемой масштабируемости.

...