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/cmd/stock/main.go

63 lines
1.3 KiB
Go

package main
import (
"flag"
"net/http"
"os"
"os/signal"
"syscall"
goji "goji.io"
web "github.com/genofire/hs_master-kss-monolith/http"
"github.com/genofire/hs_master-kss-monolith/lib/database"
"github.com/genofire/hs_master-kss-monolith/lib/log"
"github.com/genofire/hs_master-kss-monolith/models"
)
var (
configFile string
config *models.Config
)
func main() {
flag.StringVar(&configFile, "config", "config.conf", "path of configuration file (default:config.conf)")
flag.Parse()
// load config
config = models.ReadConfigFile(configFile)
web.GoodAvailablityTemplate = config.GoodAvailablityTemplate
log.Log.Info("Starting rezension monolith")
err := database.Open(config.Database)
if err != nil {
log.Log.Panic(err)
}
grw := models.NewGoodReleaseWorker(config.GoodRelease)
cw := models.NewCacheWorker(config.CacheClean)
go grw.Start()
go cw.Start()
// Startwebsrver
router := goji.NewMux()
web.BindAPI(router)
srv := &http.Server{
Addr: config.WebserverBind,
Handler: router,
}
go srv.ListenAndServe()
// Wait for system signal
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
sig := <-sigs
// Stop services
srv.Close()
grw.Close()
cw.Close()
database.Close()
log.Log.Info("received", sig)
}