1
This commit is contained in:
parent
420c029154
commit
301510cf4f
67
dbpool.go
67
dbpool.go
@ -94,33 +94,8 @@ func (this *dbPool) SelectCustomQuery(dataSource string, sql string, cb QueryRes
|
||||
}
|
||||
|
||||
func (this *dbPool) SyncSelectCustomQuery(dataSource string, sql string, cb QueryResultCb) {
|
||||
chDone := make(chan bool)
|
||||
chCbDone := make(chan bool)
|
||||
params := []string{}
|
||||
var e error
|
||||
var d *DataSet
|
||||
go this.internalQueryNoMainThread(dataSource, sql, params,
|
||||
func(err error, ds *DataSet) {
|
||||
e = err
|
||||
d = ds
|
||||
chDone <- true
|
||||
for {
|
||||
select {
|
||||
case <-chCbDone:
|
||||
close(chCbDone)
|
||||
return
|
||||
}
|
||||
}
|
||||
})
|
||||
for {
|
||||
select {
|
||||
case <-chDone:
|
||||
close(chDone)
|
||||
cb(e, d)
|
||||
chCbDone <- true
|
||||
return
|
||||
}
|
||||
}
|
||||
this.syncInternalQuery(dataSource, sql, params, cb)
|
||||
}
|
||||
|
||||
func (this *dbPool) SyncBatchLoadFullTable(dataSource string, sqlTpl string,
|
||||
@ -417,6 +392,16 @@ func (this *dbPool) internalExec(dataSource string, sql string, params []string,
|
||||
|
||||
func (this *dbPool) internalQuery(dataSource string, sql string, params []string,
|
||||
cb QueryResultCb) {
|
||||
this.internalQueryEx(dataSource, sql, params, cb, false)
|
||||
}
|
||||
|
||||
func (this *dbPool) syncInternalQuery(dataSource string, sql string, params []string,
|
||||
cb QueryResultCb) {
|
||||
this.internalQueryEx(dataSource, sql, params, cb, true)
|
||||
}
|
||||
|
||||
func (this *dbPool) internalQueryEx(dataSource string, sql string, params []string,
|
||||
cb QueryResultCb, noMainThread bool) {
|
||||
ds := this.borrowConn(dataSource)
|
||||
if ds == nil {
|
||||
cb(errors.New("borrowConn error"), nil)
|
||||
@ -442,7 +427,7 @@ func (this *dbPool) internalQuery(dataSource string, sql string, params []string
|
||||
if this.style == GO_STYLE_DB {
|
||||
defer freeFunc()
|
||||
cb(err, dataSet)
|
||||
} else {
|
||||
} else if !noMainThread {
|
||||
_app.RegisterMainThreadCb(
|
||||
func() {
|
||||
defer freeFunc()
|
||||
@ -451,34 +436,6 @@ func (this *dbPool) internalQuery(dataSource string, sql string, params []string
|
||||
}
|
||||
}
|
||||
|
||||
func (this *dbPool) internalQueryNoMainThread(dataSource string, sql string, params []string,
|
||||
cb QueryResultCb) {
|
||||
ds := this.borrowConn(dataSource)
|
||||
if ds == nil {
|
||||
cb(errors.New("borrowConn error"), nil)
|
||||
return
|
||||
}
|
||||
this.returnConn(ds)
|
||||
rows, err := ds.conn.Query(sql, q5.ToInterfaces(params)...)
|
||||
//this.returnConn(ds)
|
||||
if err != nil {
|
||||
GetSysLog().Warning("f5.dbpool.internalQueryNoMainThread error:%s sql:%s", err, sql)
|
||||
}
|
||||
|
||||
var dataSet *DataSet
|
||||
if err == nil {
|
||||
dataSet = NewDataSet(rows)
|
||||
}
|
||||
freeFunc := func () {
|
||||
if dataSet != nil {
|
||||
dataSet.close()
|
||||
}
|
||||
}
|
||||
|
||||
defer freeFunc()
|
||||
cb(err, dataSet)
|
||||
}
|
||||
|
||||
func (this *dbPool) internalQueryOne(dataSource string, sql string, params []string,
|
||||
cb QueryOneCb) {
|
||||
ds := this.borrowConn(dataSource)
|
||||
|
Loading…
x
Reference in New Issue
Block a user