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) {
|
func (this *dbPool) SyncSelectCustomQuery(dataSource string, sql string, cb QueryResultCb) {
|
||||||
chDone := make(chan bool)
|
|
||||||
chCbDone := make(chan bool)
|
|
||||||
params := []string{}
|
params := []string{}
|
||||||
var e error
|
this.syncInternalQuery(dataSource, sql, params, cb)
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *dbPool) SyncBatchLoadFullTable(dataSource string, sqlTpl string,
|
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,
|
func (this *dbPool) internalQuery(dataSource string, sql string, params []string,
|
||||||
cb QueryResultCb) {
|
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)
|
ds := this.borrowConn(dataSource)
|
||||||
if ds == nil {
|
if ds == nil {
|
||||||
cb(errors.New("borrowConn error"), 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 {
|
if this.style == GO_STYLE_DB {
|
||||||
defer freeFunc()
|
defer freeFunc()
|
||||||
cb(err, dataSet)
|
cb(err, dataSet)
|
||||||
} else {
|
} else if !noMainThread {
|
||||||
_app.RegisterMainThreadCb(
|
_app.RegisterMainThreadCb(
|
||||||
func() {
|
func() {
|
||||||
defer freeFunc()
|
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,
|
func (this *dbPool) internalQueryOne(dataSource string, sql string, params []string,
|
||||||
cb QueryOneCb) {
|
cb QueryOneCb) {
|
||||||
ds := this.borrowConn(dataSource)
|
ds := this.borrowConn(dataSource)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user