Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

StackExchange.Redis.RedisTimeoutException:Hết thời gian chờ phản hồi

Như tôi có thể thấy từ thông báo ngoại lệ của bạn, số lượng quy trình nhân công tối thiểu của bạn quá thấp so với lưu lượng truy cập bạn có.

NGƯỜI LÀM VIỆC:(Bận =10, Rảnh =32757, Tối thiểu =2, Tối đa =32767)

Bạn có 10 luồng công nhân bận khi ngoại lệ này xảy ra, trong khi bạn có 2 luồng công nhân để bắt đầu.

Khi ứng dụng của bạn hết luồng có sẵn để hoàn thành một thao tác, .NET sẽ bắt đầu một luồng mới (tất nhiên là cho đến giá trị lớn nhất). Và đợi một chút để xem có cần thêm một luồng worker nữa hay không. Nếu ứng dụng của bạn vẫn cần các luồng công nhân, thì .NET sẽ bắt đầu một luồng khác. Rồi cái khác, rồi cái khác ... Nhưng điều này đòi hỏi thời gian. Nó không xảy ra trong 0 mili giây. Bằng cách xem thông báo ngoại lệ của bạn, chúng tôi có thể thấy rằng .NET đã tạo thêm 8 luồng công nhân (10 - 2 =8). Trong khi quá trình tạo, thao tác Redis cụ thể này đã chờ đợi và cuối cùng đã hết thời gian.

Bạn có thể sử dụng ThreadPool.SetMinThreads(Int32, Int32) ở đầu ứng dụng của bạn để đặt số luồng tối thiểu. Tôi khuyên bạn nên bắt đầu với ThreadPool.SetMinThreads(10, 10) và chỉnh sửa nó khi bạn kiểm tra nó.

Đọc thêm:

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. Làm cách nào tôi có thể nhận được Người dùng chính hiện đã được xác thực với bảo mật mùa xuân và Redis trong ứng dụng khởi động mùa xuân

  2. Docker-compos, vẫn để chỉ định một tệp redis.conf?

  3. Chạy redis trên hình ảnh nodejs Docker

  4. làm thế nào để xử lý phiên hết hạn dựa trên redis?

  5. Dữ liệu tập hợp hàng loạt từ Dictionary vào Redis