From e99839e67a605ebe555ede22bef4d91f3504811a Mon Sep 17 00:00:00 2001 From: shoopea Date: Tue, 21 Jan 2020 15:46:27 +0800 Subject: [PATCH] update load obj job --- obj.go | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/obj.go b/obj.go index 672c7d6..e33fe4b 100644 --- a/obj.go +++ b/obj.go @@ -1085,20 +1085,21 @@ func loadObjJob() error { timeout time.Time user int64 zpayload []byte + zipped int ) muxObjJob.Lock() cacheObjJob = make(map[int64]Job) 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 { return err } defer jobs.Close() 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 { return err } @@ -1109,16 +1110,20 @@ func loadObjJob() error { j.Timeout = timeout j.UserID64 = user - zb := bytes.NewReader(zpayload) - zr, err := zlib.NewReader(zb) - if err != nil { - logOnError(err, "loadObjJob : zlib.NewReader") - continue + if zipped > 0 { + zb := bytes.NewReader(zpayload) + zr, err := zlib.NewReader(zb) + if err != nil { + 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() cacheObjJob[id] = *j