Make usageQueue update interval a constant

This commit is contained in:
Andy Wang 2020-04-24 01:06:22 +01:00
parent 2e945cc416
commit 72d67beea3
1 changed files with 6 additions and 1 deletions

View File

@ -11,6 +11,8 @@ import (
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
const defaultUploadInterval = 1 * time.Minute
// userPanel is used to authenticate new users and book keep active users // userPanel is used to authenticate new users and book keep active users
type userPanel struct { type userPanel struct {
Manager usermanager.UserManager Manager usermanager.UserManager
@ -19,6 +21,8 @@ type userPanel struct {
activeUsers map[[16]byte]*ActiveUser activeUsers map[[16]byte]*ActiveUser
usageUpdateQueueM sync.Mutex usageUpdateQueueM sync.Mutex
usageUpdateQueue map[[16]byte]*usagePair usageUpdateQueue map[[16]byte]*usagePair
uploadInterval time.Duration
} }
func MakeUserPanel(manager usermanager.UserManager) *userPanel { func MakeUserPanel(manager usermanager.UserManager) *userPanel {
@ -26,6 +30,7 @@ func MakeUserPanel(manager usermanager.UserManager) *userPanel {
Manager: manager, Manager: manager,
activeUsers: make(map[[16]byte]*ActiveUser), activeUsers: make(map[[16]byte]*ActiveUser),
usageUpdateQueue: make(map[[16]byte]*usagePair), usageUpdateQueue: make(map[[16]byte]*usagePair),
uploadInterval: defaultUploadInterval,
} }
go ret.regularQueueUpload() go ret.regularQueueUpload()
return ret return ret
@ -199,7 +204,7 @@ func (panel *userPanel) commitUpdate() error {
func (panel *userPanel) regularQueueUpload() { func (panel *userPanel) regularQueueUpload() {
for { for {
time.Sleep(1 * time.Minute) time.Sleep(panel.uploadInterval)
go func() { go func() {
panel.updateUsageQueue() panel.updateUsageQueue()
err := panel.commitUpdate() err := panel.commitUpdate()