Отдельные темы в веб-сервисе после его завершения

Если это было задано до моих извинений, а это веб-сервисы .NET 2.0 ASMX, еще раз мои извинения = D

Приложение .NET, которое предоставляет только веб-сервисы. Примерно 10 миллионов сообщений в день с балансировкой нагрузки между несколькими IIS-серверами. Каждое входящее сообщение является XML, а исходящее сообщение - XML. (XMLElement) (у нас есть мощные серверы, которые работают на стероидах).

У меня есть SLA, в котором все сообщения обрабатываются в течение X секунд.

Одна функция, Linking Methods, в этом процессе теперь занимает 10-20 секунд, она требуется для каждой транзакции, однако не критично, что это происходит до того, как веб-служба возвращает результаты. Из-за этого я предложил добавить его в другую ветку, но теперь понимаю, что мои слова и разработчики, стоящие за ними, возможно, не до конца продумали это.

В приведенном ниже примере слева показан текущий поток. Справа то, что пытаются

Эффективно то, что яМне нужно, чтобы веб-служба порождала длительный (10-20 секунд) поток, который будет выполняться даже после завершения веб-службы.

Вот что, по сути, происходит:

        Thread linkThread= new Thread(delegate()
        {
            Linkmembers(GetContext(), ID1, ID2, SomeOtherThing, XMLOrSomething);
        });
        linkThread.Start();

Используя это мыМы сократили время с 19 секунд до 2,1 секунд на наших устройствах разработки, что весьма существенно.

Я обеспокоен тем, что с объемом трафика, который мы получаем, и если поставщик / сторонняя сторона решит нас ограничить, IIS может решить перезапустить / уничтожить эти потоки, прежде чем онизавершена обработка. Я согласен, что наше решение не может быть "Лучший" Однако мы неу нас нет времени для того, чтобы встроить систему очередей или другую службу Windows для этого.

Есть лучший способ сделать это? Любые предостережения, которые следует учитывать?

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос