小编Eri*_*ric的帖子

GitLab CI Runner,如何在服务容器中使用卷或挂载

我使用GitLab CI Runner,它使用命令:

docker run -d --name postgres postgres:9.4
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

docker run -d --name postgres --volumes-from postgres_datastore postgres:9.4
Run Code Online (Sandbox Code Playgroud)

但GitLab CI Runner不支持任何选项(-v or --volumes-from).

还有其他方法吗?

docker gitlab-ci-runner

6
推荐指数
1
解决办法
9647
查看次数

Goroutines阻止了连接池

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/lib/pq"
    "sync"
)

func main() {
    db, _ := sql.Open("postgres", fmt.Sprintf("host=%s dbname=%s user=%s sslmode=disable", "localhost", "dbname", "postgres"))
    defer db.Close()

    db.SetMaxOpenConns(15)
    var wg sync.WaitGroup
    for i := 0; i < 15; i++ {
        wg.Add(1)
        go func() {
            defer wg.Done()
            //#1
            rows, _ := db.Query("SELECT * FROM reviews LIMIT 1")
            for rows.Next() {
                //#2
                db.Exec("SELECT * FROM reviews LIMIT 1")
            }
        }()
    }

    wg.Wait()
}
Run Code Online (Sandbox Code Playgroud)

查询1打开15个连接,rows.Next()执行时将关闭它们。但是rows.Next()永远不会执行,因为它包含db.Exec()等待自由连接的内容。

如何解决这个问题呢?

postgresql go goroutine

5
推荐指数
1
解决办法
981
查看次数

标签 统计

docker ×1

gitlab-ci-runner ×1

go ×1

goroutine ×1

postgresql ×1