ServiceStack.Redis Client Неизвестный ответ на целочисленный ответ: 423, sPort: 49782, LastCommand: PUBLISH - PullRequest
0 голосов
/ 13 декабря 2018

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

Я работаю на ServiceStack v3.9.x (последний перед выходом в продажу).По многим причинам я не могу продвинуть наши зависимости вперед и поэтому должен оставаться в этой версии.И подключение к Amazon ElastiCache для Redis v3.2.10.

Я использую два PooledRedisClientManager, хранящихся в статических переменных.Каждый вызов для установки / получения значений или публикации сообщения заключен в оператор использования и вызов GetClient.

   using (var client = ClientManager.GetClient())
       return client.PublishMessage(toChannel, message);

Кроме того, я также создал широковещательный паб / суб API.Подчасть построена вокруг одного потока на подписку с открытой RedisSubscription и RedisClient.

Из того, что я могу сказать, ничто не говорит о совместном использовании экземпляра IRedisClient между потоками.

Вот также настройки PooledRedisClientManager, которые я использую ...

  1. Один хост.
  2. MaxWritePoolSize = 10
  3. MaxReadPoolSize = 10
  4. PoolTimeout = 2 (секунды)
  5. ConnectTimeout = 0
  6. SocketSendTimeout = -1 // бесконечное время ожидания.
  7. SocketReceiveTimeout = -1 // бесконечное время ожидания.
  8. IdleTimeOutSecs = 300
...