RedisDB memunculkan pengecualian batas waktu saat mencoba menjalankan flushdb

Saya punya masalah dengan StackExchange.Redis. Dalam proses kami, kami memiliki dua database redis. Basis data ini digunakan untuk menyimpan informasi serupa yang dapat dicari oleh pengguna, jadi kami beralih di antara basis data tersebut saat mengimpor, sehingga pengguna dapat terus mengakses informasi tersebut. Setiap hari sekitar 50.000.000 catatan dimasukkan ke satu database dan catatan lama dihapus dari database lain, untuk mempersiapkannya untuk impor hari berikutnya. Catatan diimpor dalam kumpulan 100.000 catatan. Masalah yang kami hadapi adalah setelah impor data selesai, Redis mengeluarkan pengecualian, saat mencoba menjalankan perintah flushdb.

StackExchange.Redis.RedisTimeoutException Timeout awaiting response (outbound=0KiB, inbound=0KiB, 5976ms elapsed, timeout is 5000ms), command=UNKNOWN, next: SELECT, inst: 0, qu: 0, qs: 2, aw: False, rs: ReadAsync, ws: Idle, in: 0, in-pipe: 0, out-pipe: 0, serverEndpoint: 127.0.0.1:6379, mgr: 10 of 10 available, clientName: MX-ENUM-VM, IOCP: (Busy=0,Free=1000,Min=2,Max=1000), WORKER: (Busy=3,Free=32764,Min=2,Max=32767), v: 2.0.601.3402 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)    at Project.Synchronizer.Service.RedisHelper.FlushDb(Int32 dbIndex)
    at Project.Synchronizer.Service.RedisHelper.SelectAndClearRedisDbForNumberUpload()
    at Project.Synchronizer.Service.RedisHelper.UploadNumbers()
    at Project.Synchronizer.Service.DataUploadService.UploadNumbersToRedis() StackExchange.Redis.RedisTimeoutException: Timeout awaiting response (outbound=0KiB, inbound=0KiB, 5976ms elapsed, timeout is 5000ms), command=UNKNOWN, next: SELECT, inst: 0, qu: 0, qs: 2, aw: False, rs: ReadAsync, ws: Idle, in: 0, in-pipe: 0, out-pipe: 0, serverEndpoint: 127.0.0.1:6379, mgr: 10 of 10 available, clientName: CLIENT-ENUM-VM, IOCP: (Busy=0,Free=1000,Min=2,Max=1000), WORKER: (Busy=3,Free=32764,Min=2,Max=32767), v: 2.0.601.3402 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
    at Project.Synchronizer.Service.RedisHelper.FlushDb(Int32 dbIndex)
    at Project.Synchronizer.Service.RedisHelper.SelectAndClearRedisDbForNumberUpload()
    at Project.Synchronizer.Service.RedisHelper.UploadNumbers()
    at Project.Synchronizer.Service.DataUploadService.UploadNumbersToRedis()

Cara saya mencoba menjalankan perintah ini adalah

private async Task FlushDb(int dbIndex)
{
    await getDB(dbIndex).ExecuteAsync("flushdb");
}

Bantuan apa pun akan sangat kami hargai, karena saya sudah terjebak dalam hal ini cukup lama. Sebagai catatan, saya mencoba mendapatkan beberapa jawaban di sini, tetapi tidak dapat menemukan apa pun https://stackexchange.github.io/StackExchange.Redis/Timeouts.html


person brainpow3r    schedule 15.01.2020    source sumber


Jawaban (1)


Ya, sepertinya saya berhasil menyelesaikan masalah tersebut, namun belum menggali terlalu dalam apa penyebabnya. Singkat cerita, peningkatan syncTimeout sepertinya membantu dan pengecualian tidak lagi diberikan. Utas ini sangat membantu dalam kasus saya stackexchange.redis mengeluarkan batas waktu bahkan setelah batas waktu bertambah ?

person brainpow3r    schedule 15.01.2020