ServiceStack.Redis: один пул потоков для всех обработчиков MQ-запросов? - PullRequest
0 голосов
/ 04 мая 2020

В предыдущем SO-вопросе я спрашиваю, существует ли способ для RedisMqServer иметь один общий пул потоков для всех обработчиков / DTO, вместо 1 выделенного потока на обработчик как минимум. Со многими обработчиками мы порождаем много потоков, и каждый обработчик будет ограничен количеством назначенных ему потоков.

Например, с 100 обработчиками будет минимум 100 потоков, но каждый тип / обработчик может обрабатывать только 1 запрос за раз (по умолчанию). Я предвижу ситуации, когда указанный c DTO будет использоваться намного чаще, чем другие, но я хочу, чтобы обработчики брали потоки из общего пула вместо блокировки одного указанного c обработчика с помощью вызова, подобного:

mqService.RegisterHandler<PostStatusTwitter>(ExecuteMessage, noOfThreads:10);

Mythz ответил и сказал

Вы можете просто использовать C# и обернуть RegisterHandler своим собственным методом расширения, который настраивает его так, как вы хотите.

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

1 Ответ

0 голосов
/ 04 мая 2020

Redis MQ не поддерживает «Один пул потоков для всех обработчиков запросов MQ».

Предыдущий связанный ответ объясняет, как Redis MQ разработан там, где количество потоков настраивается для каждого типа сообщения (например, запрос DTO).

...