2014-04-26 09:18:56 +00:00
|
|
|
package DeviceDatabase
|
|
|
|
|
2014-10-19 17:19:11 +00:00
|
|
|
import (
|
|
|
|
"github.com/SommerEngineering/Ocean/Shutdown"
|
|
|
|
"time"
|
|
|
|
)
|
2014-04-26 09:18:56 +00:00
|
|
|
|
|
|
|
// Case: The cache is full
|
|
|
|
func cacheFull() {
|
|
|
|
mutexCacheFull.Lock()
|
|
|
|
defer mutexCacheFull.Unlock()
|
|
|
|
|
|
|
|
if len(cache) < cacheSizeNumberOfEvents {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
for counter := 0; counter < cacheSizeNumberOfEvents; counter++ {
|
|
|
|
write2Database(<-cache)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Case: Time out
|
|
|
|
func initTimeout() {
|
|
|
|
|
|
|
|
go func() {
|
|
|
|
for {
|
|
|
|
|
|
|
|
if Shutdown.IsDown() {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
time.Sleep(time.Duration(cacheSizeTime2FlushSeconds) * time.Second)
|
|
|
|
mutexCacheFull.Lock()
|
|
|
|
amount := len(cache)
|
|
|
|
for counter := 0; counter < amount; counter++ {
|
|
|
|
write2Database(<-cache)
|
|
|
|
}
|
|
|
|
mutexCacheFull.Unlock()
|
|
|
|
}
|
|
|
|
}()
|
|
|
|
}
|