Worker cache

This commit is contained in:
simon987
2019-02-19 21:38:20 -05:00
parent f235bfb588
commit 49ccf60c2e
5 changed files with 21 additions and 5 deletions

View File

@@ -12,6 +12,16 @@ import (
type Database struct {
db *sql.DB
saveTaskStmt *sql.Stmt
workerCache map[int64]*Worker
}
func New() *Database {
d := Database{}
d.workerCache = make(map[int64]*Worker)
return &d
}
func (database *Database) Reset() {

View File

@@ -42,6 +42,10 @@ func (database *Database) SaveWorker(worker *Worker) {
func (database *Database) GetWorker(id int64) *Worker {
if database.workerCache[id] != nil {
return database.workerCache[id]
}
db := database.getDB()
worker := &Worker{}
@@ -59,6 +63,8 @@ func (database *Database) GetWorker(id int64) *Worker {
"worker": worker,
}).Trace("Database.getWorker SELECT worker")
database.workerCache[id] = worker
return worker
}
@@ -101,6 +107,8 @@ func (database *Database) UpdateWorker(worker *Worker) bool {
"worker": worker,
}).Trace("Database.UpdateWorker UPDATE worker")
database.workerCache[worker.Id] = worker
return rowsAffected == 1
}