MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Golang / MGO -- panik:tidak ada server yang dapat dijangkau

Jalankan versi berikut dari kode yang Anda posting. Cobalah untuk tidak mengubah kode, setidaknya tidak mengubah posisi nomor baris. Dengan begitu, jika Anda memposting stacktrace, nomornya akan cocok.

package main

import (
    "fmt"
    "time"
)

import (
    "labix.org/v2/mgo"
)

func connectToMongo() bool {
    ret := false
    fmt.Println("enter main - connecting to mongo")

    // tried doing this - doesn't work as intended
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Detected panic")
            var ok bool
            err, ok := r.(error)
            if !ok {
                fmt.Printf("pkg:  %v,  error: %s", r, err)
            }
        }
    }()

    maxWait := time.Duration(5 * time.Second)
    session, sessionErr := mgo.DialWithTimeout("localhost:27017", 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
}

func main() {
    if ( connectToMongo() ) {
        fmt.Println("Connected")
    } else {
        fmt.Println("Not Connected")
    }
}

Saat MongoDB aktif, saya melihat:

enter main - connecting to mongo
Got a collection object
Connected

Saat MongoDB sedang down, saya melihat:

enter main - connecting to mongo
Unable to connect to local mongo instance!
Not Connected

Jika Anda tidak melihat perilaku yang sama, poskan hasilnya, termasuk kepanikan yang Anda lihat.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Maks dan min di mongodb

  2. Kueri Mongo DB di java

  3. Fasih Di Luar Laravel dengan beberapa koneksi DB jenssegers/laravel-mongodb

  4. Referensi skema luwak dan jenis 'ObjectID' yang tidak ditentukan

  5. Upsert Cepat atau Massal di pymongo