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()