我使用了https://github.com/dancannon/gorethink提供的golang驱动程序。我的理解是,我从不关闭连接并重新连接。我无法关闭连接,因为我不知道如何获得连接。我知道如何参加会议,并开始认为我不知道正确的会议方式。
所以我的问题是:
编辑:
@OneOfOne不是一些,基本上所有相关的代码:
// How i define session:
session, e := r.Connect(r.ConnectOpts{
Address: "localhost:28015",
Database: "database",
MaxActive: 0,
MaxIdle: 0,
// IdleTimeout: time.Minute,
})
//
// Inserting
inserts := map[string]interface{}{"something": something, "something1": something1, "something2": something2}
r.Db("database").Table("table").Insert(inserts).RunWrite(session)
//
// Updating
r.Db("database").Table("table").Filter(map[string]interface{}{"parameter": parameter}).Update(map[string]interface{}{"something" : somethingMore}).RunWrite(session)
//
// Get some row
row, e := r.Db("database").Table("table").Filter(map[string]interface{}{"parameter": parameter}).RunRow(session)
if e!= nil {
//error
}
@neumino:
这是我点击ulimit -a
└─ $ ▶ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30419
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 30419
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
我不知道这是太低还是太高。
@VonC:这是我无法获得的事情之一,我无法看到游戏池内的联系:
//http://godoc.org/github.com/dancannon/gorethink#Pool
type Pool struct {
Session *Session
// Maximum number of idle connections in the pool.
MaxIdle int
// Maximum number of connections allocated by the pool at a given time.
// When zero, there is no limit on the number of connections in the pool.
MaxActive int
// Close connections after remaining idle for this duration. If the value
// is zero, then idle connections are not closed. Applications should set
// the timeout to a value less than the server's timeout.
IdleTimeout time.Duration
// contains filtered or unexported fields
}
或者我只是误解了游泳池是什么或连接是什么(甚至会话是什么)?
答案 0 :(得分:3)
你可以先看看你目前的限制,也许它过低了?运行ulimit -a
查看您的设置
如果您需要增加打开文件的数量,可以运行ulimit -n <number of open files>
。
我的defaultStore.go
文件中没有任何明显的问题。光标关闭,应该释放连接。我快速查看了你的代码,看起来你没有创建不必要的会话/池,所以我不确定问题出在哪里(或者我错过了什么?)。