Junior — Middle
Veritabanı yanıt süresi zaman aşımına uğradığında 500 hatasının oluşmasını önlemek için hangi yöntemler kullanılabilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da veritabanından yanıt almak için zaman aşımı nedeniyle oluşan 500 hatasını önlemek için birkaç yaklaşım kullanılabilir:
-
Zaman aşımı ile bağlam —
context.WithTimeoutkullanarak veritabanı sorgusunun çalışma süresini sınırlayın. -
Bağlantı havuzu — kilitlenmeleri ve gecikmeleri önlemek için bağlantı havuzunu doğru yapılandırın.
-
Hata işleme — zaman aşımı hatalarını düzgün şekilde işleyin ve müşteriye anlaşılır yanıtlar döndürün.
Zaman aşımı ile bağlam kullanımı örneği:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
err := db.QueryRowContext(ctx, "SELECT ...").Scan(&result)
if err != nil {
if errors.Is(err, context.DeadlineExceeded) {
// zaman aşımı işlemi
} else {
// başka hata
}
}
Bu yaklaşım, takılmaları önlemeye ve veritabanından yanıt bekleme süresini kontrol etmeye yardımcı olur.