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

Изключение за изчакване след асинхронни команди и Task.WhenAny чака в StackExchange.Redis

Въз основа на дълга дискусия в чат и много ровене, изглежда, че в някои неясни сценарии TPL отвлича специалната нишка за четене, когато правим неща като .TrySetResult (което:правим често). Това води до моментално блокиране, ако направите синхронно повикване, тъй като не може да обработи никакви данни на сокета, ако е зает с изчакване на задачата да завърши (която някога ще бъде завършена само от само себе си). Всъщност имаме въведен код особено за предотвратяване на това , но изглежда, че решението всъщност принуждава това да се случи в някои други сценарии. Което... е ужасно. Ще видя какво мога да намеря. Но основно проблемът е, че в момента , в някои ограничени сценарии , TaskCompletionSource.TrySetResult дава право на TPL да изпълнява синхронни продължения. Това включва Task.WhenAny .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. изключете redis-сървъра от командния ред

  2. Redis:Състояние на състезанието и с една резба

  3. да получите обект от redis без eval?

  4. Отстраняване на неизправности Разрешението е отказано при опит за свързване с Redis от PHP скрипт

  5. Използване на Redis за прилагане на влизане?