Fix marshaling, force tick on start

This commit is contained in:
Audrius Butkevicius
2020-06-20 22:14:10 +01:00
parent 3f703ff237
commit b48c10052c
2 changed files with 5 additions and 3 deletions

View File

@@ -304,7 +304,7 @@ const maxCacheTime = 15 * time.Minute
func cacheRefresher(db *sql.DB) {
ticker := time.NewTicker(maxCacheTime - time.Minute)
defer ticker.Stop()
for range ticker.C {
for ; true; <-ticker.C {
cacheMut.Lock()
if err := refreshCacheLocked(db); err != nil {
log.Println(err)

View File

@@ -42,7 +42,7 @@ func (p *IntMap) Scan(src interface{}) error {
type Report struct {
// Generated
Received time.Time // Only from DB
Received time.Time `json:"-"` // Only from DB
Date string `json:"date,omitempty"`
Address string `json:"address,omitempty"`
@@ -410,7 +410,9 @@ func (r *Report) FieldNames() []string {
}
func (r Report) Value() (driver.Value, error) {
return json.Marshal(r)
// This needs to be string, yet we read back bytes..
bs, err := json.Marshal(r)
return string(bs), err
}
func (r *Report) Scan(value interface{}) error {