update load obj job

This commit is contained in:
shoopea 2020-01-21 15:46:27 +08:00
parent d52e58493a
commit e99839e67a

27
obj.go
View File

@ -1085,20 +1085,21 @@ func loadObjJob() error {
timeout time.Time timeout time.Time
user int64 user int64
zpayload []byte zpayload []byte
zipped int
) )
muxObjJob.Lock() muxObjJob.Lock()
cacheObjJob = make(map[int64]Job) cacheObjJob = make(map[int64]Job)
muxObjJob.Unlock() muxObjJob.Unlock()
jobs, err := db.Query(`SELECT o.id, o.obj_sub_type_id, oj.trigger_id, oj.timeout, oj.user_id, oj.payload FROM obj o, obj_job oj WHERE o.id = oj.obj_id;;`) jobs, err := db.Query(`SELECT o.id, o.obj_sub_type_id, oj.trigger_id, oj.timeout, oj.user_id, oj.zipped, oj.payload FROM obj o, obj_job oj WHERE o.id = oj.obj_id;;`)
if err != nil { if err != nil {
return err return err
} }
defer jobs.Close() defer jobs.Close()
for jobs.Next() { for jobs.Next() {
err = jobs.Scan(&id, &type_id, &trigger, &timeout, &user, &zpayload) err = jobs.Scan(&id, &type_id, &trigger, &timeout, &user, &zipped, &zpayload)
if err != nil { if err != nil {
return err return err
} }
@ -1109,16 +1110,20 @@ func loadObjJob() error {
j.Timeout = timeout j.Timeout = timeout
j.UserID64 = user j.UserID64 = user
zb := bytes.NewReader(zpayload) if zipped > 0 {
zr, err := zlib.NewReader(zb) zb := bytes.NewReader(zpayload)
if err != nil { zr, err := zlib.NewReader(zb)
logOnError(err, "loadObjJob : zlib.NewReader") if err != nil {
continue logOnError(err, "loadObjJob : zlib.NewReader")
continue
}
b := new(bytes.Buffer)
b.ReadFrom(zr)
payload := b.Bytes()
j.Payload = payload
} else {
j.Payload = zpayload
} }
b := new(bytes.Buffer)
b.ReadFrom(zr)
payload := b.Bytes()
j.Payload = payload
muxObjJob.Lock() muxObjJob.Lock()
cacheObjJob[id] = *j cacheObjJob[id] = *j