Giter Club home page Giter Club logo

golang-neo4j-bolt-driver's People

Contributors

collisonchris avatar erictg avatar johnnadratowski avatar markuszm avatar matt-guest avatar pzurek avatar scott-wilson avatar umsu2 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

golang-neo4j-bolt-driver's Issues

How bolt connection pooling works?

I don't understand how pooling works.
Indeed if i < 5 (pool size) I get display, on the other hand, it does not end without display information or error.

func Test_BoltDriverPool_Concurrent(t *testing.T) {
  neo4jConnStr := os.Getenv("NEO4J_BOLT")
  if neo4jConnStr != "" {
    t.Log("Using NEO4J for tests:", neo4jConnStr)
  }

  pool, err := boltDriver.NewDriverPool(neo4jConnStr, 5)
  if err != nil {
    t.Fatalf("An error occurred opening driver pool: %#v", err)
  }

  var countGoroutine int32 = 0
  var wg sync.WaitGroup

  for i := 0; i < 5; i++ { // OK i <= pool size
  // for i := 0; i < 10; i++ { // KO i > pool size, does not end
    wg.Add(1)

    go func() {
      defer wg.Done()

      conn, err := pool.Open(0)
      if err != nil {
        t.Fatalf("An error occurred opening conn from pool: %#v", err)
      }
      defer conn.Close()

      minSec := 2
      maxSec := 5
      waitSec := rand.Intn(maxSec-minSec) + minSec
      atomic.AddInt32(&countGoroutine, 1)
      t.Logf("%d - Waiting %d s.", countGoroutine, waitSec)
      time.Sleep(time.Second * time.Duration(waitSec))
    }()

    time.Sleep(time.Millisecond * time.Duration(100))
  }

  wg.Wait()
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.