Golang / Mongo: Mengendalikan Panik "Tiada Pelayan Boleh Dicapai"
Masalah:
Bila cuba menyambung ke Mongo dengan MGO dalam Go, panik berlaku jika pelayan tidak dapat dihubungi. Bagaimanakah panik ini boleh dipulihkan untuk membolehkan program meneruskan pelaksanaan?
Jawapan:
Untuk mengendalikan panik yang dilemparkan oleh MGO apabila tiada pelayan yang boleh dicapai tersedia, kod berikut boleh digunakan:
import ( "labix.org/v2/mgo" ) func connectToMongo() bool { // Define a flag to indicate success ret := false defer func() { if r := recover(); r != nil { fmt.Println("Detected panic") } }() maxWait := time.Duration(5 * time.Second) session, sessionErr := mgo.DialWithTimeout("localhost", maxWait) if sessionErr == nil { session.SetMode(mgo.Monotonic, true) coll := session.DB("MyDB").C("MyCollection") if coll != nil { fmt.Println("Got a collection object") ret = true } } else { // never gets here fmt.Println("Unable to connect to local mongo instance!") } return ret }
Dalam diubah suai ini version:
Dengan menggabungkan perubahan ini, program ini boleh menangani panik yang disebabkan oleh ketidakupayaan MGO untuk menyambung ke Mongo dan meneruskan pelaksanaan tanpa keluar.
Atas ialah kandungan terperinci Bagaimana untuk Pulih daripada panik 'Tiada Pelayan Boleh Dicapai' Apabila Menyambung ke MongoDB dengan MGO dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!