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

@ -49,7 +49,7 @@ func (api *WebAPI) setupMonitoring() {
func New() *WebAPI {
api := new(WebAPI)
api.Database = &storage.Database{}
api.Database = storage.New()
api.setupMonitoring()
api.router = &fasthttprouter.Router{}

View File

@ -2,7 +2,7 @@ server:
address: "0.0.0.0:42901"
database:
conn_str: "user=task_tracker dbname=task_tracker_test sslmode=disable"
conn_str: "user=task_tracker dbname=task_tracker sslmode=disable"
# log_levels: ["debug", "error", "trace", "info", "warn"]
log_levels: ["error", "info", "warn"]
@ -23,4 +23,4 @@ session:
monitoring:
snapshot_interval: "60s"
history_length: "4h"
history_length: "400h"

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
}

View File

@ -9,7 +9,6 @@
<mat-card-title *ngIf="project">{{"dashboard.title" | translate}} "{{project.name}}"</mat-card-title>
<mat-card-content style="padding: 2em 0 1em">
<p *ngIf="project">
{{"project.git_repo" | translate}}:
<a target="_blank" [href]="project['clone_url']"
@ -19,7 +18,6 @@
<p>{{"project.motd" | translate}}:</p>
<pre *ngIf="project">{{project.motd}}</pre>
<div style="display: flex; align-items: center; justify-content: center">
<div id="timeline-wrapper">
<canvas id="timeline"></canvas>