From 7a21e09048a8b6b7929eb1ecfbdb693e7271c4f4 Mon Sep 17 00:00:00 2001 From: w1ndyb0y Date: Wed, 23 Dec 2020 14:23:55 +0800 Subject: [PATCH] rewrite load --- utils/sqlite.go | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/utils/sqlite.go b/utils/sqlite.go index c6d9cae..c0c7029 100644 --- a/utils/sqlite.go +++ b/utils/sqlite.go @@ -94,19 +94,11 @@ func LoadUnprocessed() { db := getDb() defer db.Close() for { - num := countTelegram() - log.Println("unprocessed : ", num) - if num < 1 { + telegrams := getTelegram(db) + if len(telegrams) < 1 { break } - log.Println("try to load unprocessed telegram ", num) - rows, err := db.Query(load) - checkDbErr(err, "error in query telegram") - defer rows.Close() - for rows.Next() { - var t telegram - err := rows.Scan(&t.id, &t.text) - checkDbErr(err, "error in scan telegram") + for _, t := range telegrams { if WriteToClient(t.text) == nil { processed(db, t) } @@ -114,6 +106,26 @@ func LoadUnprocessed() { } } +func getTelegram(db *sql.DB) []telegram { + var telegrams []telegram + num := countTelegram() + log.Println("unprocessed : ", num) + if num < 1 { + return telegrams + } + log.Println("try to load unprocessed telegram ", num) + rows, err := db.Query(load) + checkDbErr(err, "error in query telegram") + defer rows.Close() + for rows.Next() { + var t telegram + err := rows.Scan(&t.id, &t.text) + checkDbErr(err, "error in scan telegram") + telegrams = append(telegrams, t) + } + return telegrams +} + func processed(db *sql.DB, t telegram) { getWriteLock() tx, err := db.Begin()