Назад | Перейти на главную страницу

Приоритет очереди запросов ASP.NET

Я использую IIS 7 и .NET 4.0. Насколько я понимаю, IIS принимает запросы и передает их рабочим потокам ASP.NET. Если все потоки используются, запрос помещается в очередь и обрабатывается, как только поток становится доступным. Если очередь превышает определенный размер, все новые запросы получают 503, пока в очереди снова не освободится место.

Есть ли способ расставить приоритеты в порядке обслуживания запросов в очереди? Например, у меня есть потребительский трафик и трафик инфраструктуры, приходящие на один и тот же сервер. Если доступных потоков нет, я бы хотел, чтобы запросы потребителей обслуживались первыми, даже если они поступили после запросов инфраструктуры. В основном я хочу заменить очередь запросов очередью с приоритетом. Возможно ли это с IIS?

Может быть задействовано множество очередей; Я считаю ваше описание неполным.

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

Каждый пул приложений имеет очередь запросов в режиме ядра (по умолчанию 1000 запросов), используемую для того, чтобы в случае переработанного W3WP (рабочего процесса) запросы не терялись, но это также становится практическим максимальным пределом для невыполненных запросов. в данный момент.

Если эта очередь заполнится, вы получите 503.

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

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

Я не верю в это, но у вас может быть два сайта, один для потребительского трафика, а другой для трафика инфраструктуры, тогда у каждого из них будут свои очереди.