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/good_release.go

24 lines
820 B
Go

// Package with supporting functionality to run the microservice
package runtime
import (
"time"
"github.com/genofire/hs_master-kss-monolith/lib/database"
"github.com/genofire/hs_master-kss-monolith/lib/worker"
"github.com/genofire/hs_master-kss-monolith/models"
)
// Function to create a Worker and to unlock goods
func NewGoodReleaseWorker(grc models.GoodReleaseConfig) *worker.Worker {
return worker.NewWorker(grc.Every.Duration, func() {
goodRelease(grc.After.Duration)
})
}
// Function to unlock goods after a specified time
func goodRelease(unlockAfter time.Duration) int64 {
res := database.Write.Model(&models.Good{}).Where("locked_secret is not NULL and locked_at < ?", time.Now().Add(-unlockAfter)).Updates(map[string]interface{}{"locked_secret": "", "locked_at": nil})
return res.RowsAffected
}