Приоритет HTTP-запроса IIS6 - PullRequest
0 голосов
/ 04 июня 2010

Я отправляю запросы POST на внешний сервер под управлением IIS6. Это критический по времени запрос, в котором я хочу убедиться, что мой запрос обрабатывается в определенное время (например, 10:00:00 AM). Не раньше И я хочу обеспечить, чтобы в это конкретное время моему запросу был присвоен самый высокий приоритет над другими запросами. Поможет ли что-нибудь из этого:

  • Отправка большей части сообщения на несколько секунд раньше и отправка последнего байта или около того за несколько миллисекунд до 10:00:00. Не уверен, поможет ли это, поскольку я буду конкурировать с другими запросами, поступающими в это время. Будет ли IIS назначать более высокий приоритет моему запросу в зависимости от того, как долго я подключен?
  • Что-нибудь, что я могу добавить в заголовок сообщения, чтобы сервер мог поставить в очередь мой запрос и обрабатывать его только в определенное время?

Какие-нибудь известные хаки, которые я могу использовать?

Ответы [ 2 ]

0 голосов
/ 04 июня 2010

Похоже, вам нужно больше системы планировщика, чем пытаться использовать http. HTTP - это протокол без сохранения состояния, вы отправляете запрос в IIS, вы получаете ответ.

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

То, что вы хотите, вы, вероятно, не можете достичь с помощью IIS, это не то, для чего он предназначен.

0 голосов
/ 04 июня 2010

Нет - HTTP не протокол реального времени. Обычно он работает поверх TCP / IP, который не является протоколом реального времени. Несмотря на то, что вы можете приблизиться к поведению в реальном времени из такой архитектуры, это далеко не просто - не поверьте мне на слово - прочитайте исходный код для xntpd.

Сказав, что вы не предоставляете никаких сведений о фактическом уровне точности, который вам требуется, но ваше сообщение подразумевает, что оно может составлять до секунды, что очень долго для отправки запроса веб-серверу. С другой стороны, планирование такого события для запуска клиентской стороны с таким уровнем точности очень сложно - я не пытался измерить точность планировщика в MSWindowsNT, но в другом месте я бы ожидал, что он будет точным примерно до 5 минут , Поэтому вам нужно запланировать запуск задания на 5 минут раньше, а затем спать по 10 миллисекунд за раз, пока не наступит заданное время.

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

C.

...