1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-07 23:16:47 +00:00

feature(worker): ability to hot reload mirror job configrations, close #18

这个提交包含在:
bigeagle
2016-05-02 17:45:21 +08:00
父节点 fecfc8f3b1
当前提交 51fa12900d
共有 10 个文件被更改,包括 603 次插入319 次删除

查看文件

@@ -2,6 +2,9 @@ package main
import (
"os"
"os/signal"
"syscall"
"time"
"github.com/codegangsta/cli"
"github.com/gin-gonic/gin"
@@ -12,7 +15,7 @@ import (
"github.com/tuna/tunasync/worker"
)
var logger = logging.MustGetLogger("tunasync-cmd")
var logger = logging.MustGetLogger("tunasync")
func startManager(c *cli.Context) {
tunasync.InitLogger(c.Bool("verbose"), c.Bool("debug"), c.Bool("with-systemd"))
@@ -54,6 +57,24 @@ func startWorker(c *cli.Context) {
os.Exit(1)
}
go func() {
time.Sleep(1 * time.Second)
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGHUP)
for {
s := <-sigChan
switch s {
case syscall.SIGHUP:
logger.Info("Received reload signal")
newCfg, err := worker.LoadConfig(c.String("config"))
if err != nil {
logger.Errorf("Error loading config: %s", err.Error())
}
w.ReloadMirrorConfig(newCfg.Mirrors)
}
}
}()
logger.Info("Run tunasync worker.")
w.Run()
}