Redis
 sql >> база данни >  >> NoSQL >> Redis

StackExchange.Redis.RedisTimeoutException:Време изчакване на отговор

Както виждам от съобщението ви за изключение, минималният ви брой работни процеси е твърде нисък за трафика, който имате.

РАБОТНИК:(Заето=10,Свободно=32757,Мин.=2,Макс.=32767)

Имахте 10 заети работни нишки, когато се случи това изключение, докато за начало имахте 2 работни нишки.

Когато в приложението ви свършат наличните нишки за завършване на операция, .NET стартира нова (до максимална стойност, разбира се). И изчаква малко, за да види дали е необходима допълнителна работна нишка. Ако вашето приложение все още се нуждае от работни нишки, тогава .NET стартира друга. После още един, после още... Но това изисква време. Не се случва за 0 ms. Като разгледаме вашето съобщение за изключение, можем да видим, че .NET е създал 8 допълнителни работни нишки (10 - 2 =8). По време на процеса на създаване, тази конкретна операция на Redis изчака и в крайна сметка изтече времето за изчакване.

Можете да използвате ThreadPool.SetMinThreads(Int32, Int32) метод в началото на вашето приложение, за да зададете минимален брой нишки. Предлагам ви да започнете с ThreadPool.SetMinThreads(10, 10) и го настройвайте, докато го тествате.

Допълнително четене:

https://docs.microsoft.com/en-us/dotnet/api/system.threading.threadpool.setminthreadshttps://stackexchange.github.io/StackExchange.Redis/Timeouts.html




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Шаблони за проектиране на JavaScript – справяне с нежелана асинхронност

  2. Защо има KEYS и ARGV масиви при извикване на Redis Lua скриптове?

  3. Не мога да намеря модул 'socket.io/node_modules/redis'

  4. Да слушате за промени в Redis?

  5. Връзката с Redis изчезна от близкото събитие