SmartThreadPool как общий блок обработки заданий за фасадом сервисов WCF - PullRequest
0 голосов
/ 04 января 2012

В настоящее время я занимаюсь разработкой некоторых служб WCF, которые размещены в одном и том же рабочем процессе. Я ищу, кто-нибудь экспериментировал с использованием пользовательского пула потоков, такого как SmartThreadPool, для реализации асинхронного модуля обработки заданий в качестве общей реализации. В принципе, существует ли какая-либо проблема управления потоками или известный (анти) шаблон, который может конфликтовать с внутренним управлением потоками WCF?

Обновление : (Извините за мой плохой английский, я не совсем понял) Моя служба WCF обрабатывает простые клиентские запросы (клиенты / приложения для нескольких предприятий), которые в основном запускают рабочие процессы и экземпляры разных типов работ, которые в свою очередь передаются на внешний фасад java-сервисов. Существует много различных типов заданий, как синхронных, так и асинхронных, каждый из которых имеет дело с большим количеством коллекций метаданных из нескольких баз данных и включает рабочие процессы, которые, даже если они просты, требуют некоторого сохранения контекста / состояния (+1 база данных) и обновлений в исходные базы данных.

Моя первая идея состояла в том, чтобы написать центральный механизм обработки заданий, получать «простые» запросы заданий, полученные от клиентов, обрабатывать эти задания асинхронно для сбора наборов метаданных, необходимых для внешних служб Java, и передавать эти запросы во внешние службы. .. Это приведет к тому, что клиенты будут отправлять экземпляры запросов типа задания, возвращать какой-либо идентификатор задания / контекста и проверять состояние задания / контекста, пока дела выполняются где-то еще ...

А вот и SmartThreadPool, элегантный центральный элемент такой головоломки ... Мой сервис - WCF 4, клиенты - это powerbuilder, использующий asmx-подобные прокси, а внешний сервис - Axis2 - webMethods. Я не нашел ни одного примера SmartThreadPool в таком контексте WCF, и мне было интересно, может ли какой-нибудь плохой многопоточный анти-шаблон спать здесь, под камнем ...

...