Пример #1
0
func (this *worker) run(fn string) {
	reader := als.NewAlsReader(fn)
	if err := reader.Open(); err != nil {
		panic(err)
	}
	defer func() {
		this.wg.Done()
		reader.Close()
	}()

	var (
		line  []byte
		err   error
		snsid interface{}
		msg   = als.NewAlsMessage()
	)

	for {
		line, err = reader.ReadLine()
		if err != nil {
			break
		} else {
			msg.FromLine(string(line))
			snsid, err = msg.FieldValue("_log_info.snsid", als.KEY_TYPE_STRING)
			if err != nil {
				continue
			}

			fetchAvatar(msg.Area, snsid.(string))
		}
	}
}
Пример #2
0
func NewPipelinePack(recycleChan chan *PipelinePack) (this *PipelinePack) {
	return &PipelinePack{
		RecycleChan:  recycleChan,
		RefCount:     int32(1),
		MsgLoopCount: 0,
		Input:        false,
		diagnostics:  NewPacketTracking(),
		Message:      als.NewAlsMessage(),
		Logfile:      als.NewAlsLogfile(),
	}
}
Пример #3
0
func (this *worker) run(fn string) {
	reader := als.NewAlsReader(fn)
	if err := reader.Open(); err != nil {
		panic(err)
	}
	defer func() {
		this.wg.Done()
		reader.Close()
	}()

	var (
		line    []byte
		err     error
		present bool
		elapsed interface{}
		msg     = als.NewAlsMessage()
	)

	for {
		line, err = reader.ReadLine()
		if err != nil {
			break
		} else {
			msg.FromLine(string(line))
			elapsed, err = msg.FieldValue("_log_info.elapsed", als.KEY_TYPE_FLOAT)
			if err != nil {
				continue
			}

			if _, present = quants[msg.Area]; present {
				quants[msg.Area].Insert(elapsed.(float64))
			}
		}

	}

}