in nimo-shake/full-sync/table-syncer.go [240:275]
func (ts *tableSyncer) parser(id int) {
LOG.Info("%s start parser[%v]", ts.String(), id)
for {
startT := time.Now()
data, ok := <-ts.fetcherChan
if !ok {
break
}
readFetcherChanDuration := time.Since(startT)
LOG.Debug("%s parser[%v] read data[%v]", ts.String(), id, data)
var parserDuration, writeParseChanDuration time.Duration = 0, 0
list := data.Items
for _, ele := range list {
startT = time.Now()
out, err := ts.converter.Run(ele)
parserDuration = parserDuration + time.Since(startT)
if err != nil {
LOG.Crashf("%s parser[%v] parse ele[%v] failed[%v]", ts.String(), id, ele, err)
}
startT = time.Now()
ts.parserChan <- out
writeParseChanDuration = writeParseChanDuration + time.Since(startT)
}
LOG.Info("%s parser parser[%v] readFetcherChanTime[%v] parserTime[%v]"+
" writeParseChantime[%v] parserChan.len[%v]",
ts.String(), id, readFetcherChanDuration, parserDuration, writeParseChanDuration, len(ts.parserChan))
}
LOG.Info("%s close parser", ts.String())
}