Command line arg for changing the number of background updaters
Default number of background updaters raised to 4
This commit is contained in:
1 parent
72b55c82ec
commit
6fa2f2142f
2 files changed
+13
-3
No files matched your search
+10
-3
@@ -19,8 +19,8 @@ const (
|
||||
DefaultLocalDomain = "weave.local." // The default name used for the local domain
|
||||
DefaultRefreshInterval = int(localTTL) // Period for background updates with mDNS
|
||||
DefaultRelevantTime = 60 // When to forget info about remote info if nobody asks...
|
||||
DefaultNumUpdaters = 4 // Default number of background updaters
|
||||
|
||||
defaultNumUpdaters = 1 // Number of background updaters
|
||||
defaultRefreshMailbox = 1000 // Number of on-the-fly background queries
|
||||
defaultRemoteIdent = "weave:remote" // Ident used for info obtained from mDNS
|
||||
)
|
||||
@@ -423,6 +423,8 @@ type ZoneConfig struct {
|
||||
Iface *net.Interface
|
||||
// Refresh interval for local names in the zone database (disabled by default) (in seconds)
|
||||
RefreshInterval int
|
||||
// Number of background updaters for names
|
||||
RefreshWorkers int
|
||||
// Forget about remote info if nobody asks for it in this time (in seconds)
|
||||
RelevantTime int
|
||||
// Max pending refresh requests
|
||||
@@ -455,6 +457,7 @@ type zoneDb struct {
|
||||
refreshCloseChan chan bool
|
||||
refreshWg sync.WaitGroup
|
||||
refreshInterval time.Duration
|
||||
refreshWorkers int
|
||||
}
|
||||
|
||||
// Create a new zone database
|
||||
@@ -475,6 +478,7 @@ func NewZoneDb(config ZoneConfig) (zone *zoneDb, err error) {
|
||||
refreshChan: make(chan refreshRequest, maxRefreshRequests),
|
||||
refreshSchedChan: make(chan refreshRequest, maxRefreshRequests),
|
||||
refreshCloseChan: make(chan bool),
|
||||
refreshWorkers: DefaultNumUpdaters,
|
||||
}
|
||||
|
||||
// fix the default configuration parameters
|
||||
@@ -490,6 +494,9 @@ func NewZoneDb(config ZoneConfig) (zone *zoneDb, err error) {
|
||||
if config.RelevantTime > 0 {
|
||||
zone.relevantLimit = time.Duration(config.RelevantTime) * time.Second
|
||||
}
|
||||
if config.RefreshWorkers > 0 {
|
||||
zone.refreshWorkers = config.RefreshWorkers
|
||||
}
|
||||
|
||||
// Create the mDNS client and server
|
||||
if zone.mdnsCli == nil {
|
||||
@@ -523,8 +530,8 @@ func (zone *zoneDb) Start() (err error) {
|
||||
|
||||
// Start some name refreshers...
|
||||
if zone.refreshInterval > 0 {
|
||||
Info.Printf("[zonedb] Starting %d background name updaters", defaultNumUpdaters)
|
||||
for i := 0; i < defaultNumUpdaters; i++ {
|
||||
Info.Printf("[zonedb] Starting %d background name updaters", zone.refreshWorkers)
|
||||
for i := 0; i < zone.refreshWorkers; i++ {
|
||||
zone.refreshWg.Add(1)
|
||||
go zone.updater(i)
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ func main() {
|
||||
timeout int
|
||||
udpbuf int
|
||||
refreshInterval int
|
||||
refreshWorkers int
|
||||
relevantTime int
|
||||
cacheLen int
|
||||
cacheDisabled bool
|
||||
@@ -45,6 +46,7 @@ func main() {
|
||||
flag.BoolVar(&debug, "debug", false, "output debugging info to stderr")
|
||||
// advanced options
|
||||
flag.IntVar(&refreshInterval, "refresh", weavedns.DefaultRefreshInterval, "refresh interval (in secs) for local names (0=disable)")
|
||||
flag.IntVar(&refreshWorkers, "refresh-workers", weavedns.DefaultNumUpdaters, "default number of background updaters")
|
||||
flag.IntVar(&relevantTime, "relevant", weavedns.DefaultRelevantTime, "life time for info in the absence of queries (in secs)")
|
||||
flag.IntVar(&udpbuf, "udpbuf", weavedns.DefaultUDPBuflen, "UDP buffer length")
|
||||
flag.IntVar(&timeout, "timeout", weavedns.DefaultTimeout, "timeout for resolutions (in millisecs)")
|
||||
@@ -76,6 +78,7 @@ func main() {
|
||||
Domain: domain,
|
||||
Iface: iface,
|
||||
RefreshInterval: refreshInterval,
|
||||
RefreshWorkers: refreshWorkers,
|
||||
RelevantTime: relevantTime,
|
||||
}
|
||||
zone, err := weavedns.NewZoneDb(zoneConfig)
|
||||
|
||||
Reference in new issue
Block a user