genofire/hs_monolith
genofire
/
hs_monolith
Archived
1
0
Fork 0
This repository has been archived on 2020-09-27. You can view files and clone it, but cannot push or open issues or pull requests.
hs_monolith/runtime/cache_worker.go

35 lines
900 B
Go

// Package with supporting functionality to run the microservice
package runtime
import (
"time"
"github.com/genofire/hs_master-kss-monolith/lib/worker"
"github.com/genofire/hs_master-kss-monolith/models"
)
// Configuration of the cache Worker
var CacheConfig models.CacheWorkerConfig
// Function to run the cache Worker
func CleanCache() {
before := time.Now().Add(-CacheConfig.After.Duration)
// Cache, if product exists
for index, cache := range productExistCache {
if before.After(cache.LastCheck) {
delete(productExistCache, index)
}
}
// Cache for permissions
for index, cache := range permissionCache {
if before.After(cache.LastCheck) {
delete(permissionCache, index)
}
}
}
// Function to create a Worker and to clean the caches from other microservice
func NewCacheWorker() (w *worker.Worker) {
return worker.NewWorker(CacheConfig.Every.Duration, CleanCache)
}