mirror of
https://github.com/simon987/task_tracker.git
synced 2025-12-11 14:08:52 +00:00
Worker cache
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user