"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "apps/nsqd/main.go" between
nsq-1.2.0.tar.gz and nsq-1.2.1.tar.gz

About: nsq is a realtime distributed and and decentralized messaging platform.

main.go  (nsq-1.2.0):main.go  (nsq-1.2.1)
package main package main
import ( import (
"context"
"flag" "flag"
"fmt" "fmt"
"math/rand" "math/rand"
"os" "os"
"path/filepath"
"sync" "sync"
"syscall" "syscall"
"time" "time"
"github.com/BurntSushi/toml" "github.com/BurntSushi/toml"
"github.com/judwhite/go-svc/svc" "github.com/judwhite/go-svc"
"github.com/mreiferson/go-options" "github.com/mreiferson/go-options"
"github.com/nsqio/nsq/internal/lg" "github.com/nsqio/nsq/internal/lg"
"github.com/nsqio/nsq/internal/version" "github.com/nsqio/nsq/internal/version"
"github.com/nsqio/nsq/nsqd" "github.com/nsqio/nsq/nsqd"
) )
type program struct { type program struct {
once sync.Once once sync.Once
nsqd *nsqd.NSQD nsqd *nsqd.NSQD
} }
func main() { func main() {
prg := &program{} prg := &program{}
if err := svc.Run(prg, syscall.SIGINT, syscall.SIGTERM); err != nil { if err := svc.Run(prg, syscall.SIGINT, syscall.SIGTERM); err != nil {
logFatal("%s", err) logFatal("%s", err)
} }
} }
func (p *program) Init(env svc.Environment) error { func (p *program) Init(env svc.Environment) error {
if env.IsWindowsService() {
dir := filepath.Dir(os.Args[0])
return os.Chdir(dir)
}
return nil
}
func (p *program) Start() error {
opts := nsqd.NewOptions() opts := nsqd.NewOptions()
flagSet := nsqdFlagSet(opts) flagSet := nsqdFlagSet(opts)
flagSet.Parse(os.Args[1:]) flagSet.Parse(os.Args[1:])
rand.Seed(time.Now().UTC().UnixNano()) rand.Seed(time.Now().UTC().UnixNano())
if flagSet.Lookup("version").Value.(flag.Getter).Get().(bool) { if flagSet.Lookup("version").Value.(flag.Getter).Get().(bool) {
fmt.Println(version.String("nsqd")) fmt.Println(version.String("nsqd"))
os.Exit(0) os.Exit(0)
skipping to change at line 65 skipping to change at line 57
configFile := flagSet.Lookup("config").Value.String() configFile := flagSet.Lookup("config").Value.String()
if configFile != "" { if configFile != "" {
_, err := toml.DecodeFile(configFile, &cfg) _, err := toml.DecodeFile(configFile, &cfg)
if err != nil { if err != nil {
logFatal("failed to load config file %s - %s", configFile , err) logFatal("failed to load config file %s - %s", configFile , err)
} }
} }
cfg.Validate() cfg.Validate()
options.Resolve(opts, flagSet, cfg) options.Resolve(opts, flagSet, cfg)
nsqd, err := nsqd.New(opts) nsqd, err := nsqd.New(opts)
if err != nil { if err != nil {
logFatal("failed to instantiate nsqd - %s", err) logFatal("failed to instantiate nsqd - %s", err)
} }
p.nsqd = nsqd p.nsqd = nsqd
err = p.nsqd.LoadMetadata() return nil
}
func (p *program) Start() error {
err := p.nsqd.LoadMetadata()
if err != nil { if err != nil {
logFatal("failed to load metadata - %s", err) logFatal("failed to load metadata - %s", err)
} }
err = p.nsqd.PersistMetadata() err = p.nsqd.PersistMetadata()
if err != nil { if err != nil {
logFatal("failed to persist metadata - %s", err) logFatal("failed to persist metadata - %s", err)
} }
go func() { go func() {
err := p.nsqd.Main() err := p.nsqd.Main()
skipping to change at line 98 skipping to change at line 95
return nil return nil
} }
func (p *program) Stop() error { func (p *program) Stop() error {
p.once.Do(func() { p.once.Do(func() {
p.nsqd.Exit() p.nsqd.Exit()
}) })
return nil return nil
} }
func (p *program) Handle(s os.Signal) error {
return svc.ErrStop
}
// Context returns a context that will be canceled when nsqd initiates the shutd
own
func (p *program) Context() context.Context {
return p.nsqd.Context()
}
func logFatal(f string, args ...interface{}) { func logFatal(f string, args ...interface{}) {
lg.LogFatal("[nsqd] ", f, args...) lg.LogFatal("[nsqd] ", f, args...)
} }
 End of changes. 7 change blocks. 
11 lines changed or deleted 18 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)