cpprestsdk http_listener зависает при отправке более чем запросов "thread_pool_count" одновременно - PullRequest
0 голосов
/ 28 мая 2019

на Ubuntu 16.04.Я использую http_listener cpprestsdk для обработки некоторых запросов JSON.количество потоков по умолчанию - 40. Когда я посылаю более 40 запросов одновременно из команды curl, сервер просто зависает навсегда и не отвечает ни на какие дальнейшие запросы.он зависает при попытке извлечь тело сообщения в этой строке pplx::task<utility::string_t> pplxString = message.extract_string(true);

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

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

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

...