本文整理汇总了Golang中github.com/funkygao/dpipe/engine.PipelinePack.Project方法的典型用法代码示例。如果您正苦于以下问题:Golang PipelinePack.Project方法的具体用法?Golang PipelinePack.Project怎么用?Golang PipelinePack.Project使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/funkygao/dpipe/engine.PipelinePack
的用法示例。
在下文中一共展示了PipelinePack.Project方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Run
func (this *SelfSysInput) Run(r engine.InputRunner, h engine.PluginHelper) error {
var (
globals = engine.Globals()
stats = newSysStat()
inChan = r.InChan()
pack *engine.PipelinePack
jsonString string
err error
stopped = false
)
for !stopped {
select {
case <-this.stopChan:
stopped = true
case <-r.Ticker():
// same effect as sleep
}
if stopped {
break
}
stats.gatherStats()
jsonString, err = stats.jsonString()
if err != nil {
globals.Println(err)
continue
}
pack = <-inChan
if err = pack.Message.FromLine(fmt.Sprintf("als,%d,%s",
time.Now().Unix(), jsonString)); err != nil {
globals.Printf("invalid sys stat: %s\n", jsonString)
pack.Recycle()
continue
}
pack.Project = "als"
pack.Ident = this.ident
pack.EsIndex = "fun_als"
pack.EsType = "sys"
r.Inject(pack)
}
return nil
}
示例2: doRunSingleLogfile
func (this *ArchiveInput) doRunSingleLogfile(path string) {
reader := als.NewAlsReader(path)
if e := reader.Open(); e != nil {
panic(e)
}
defer func() {
reader.Close()
this.workersWg.Done()
atomic.AddInt32(&this.leftN, -1)
<-this.workerNChan // release the lock
}()
var (
line []byte
lineN int
inChan = this.runner.InChan()
err error
project = this.h.Project(this.project)
pack *engine.PipelinePack
globals = engine.Globals()
)
for !this.stopping {
line, err = reader.ReadLine()
switch err {
case nil:
lineN += 1
atomic.AddInt64(&this.lineN, 1)
if globals.Verbose && lineN == 1 {
project.Printf("[%s]started\n", path)
}
pack = <-inChan
if err = pack.Message.FromLine(string(line)); err != nil {
if project.ShowError && err != als.ErrEmptyLine {
project.Printf("[%s]%v: %s", path, err, string(line))
}
pack.Recycle()
continue
}
pack.Ident = this.ident
pack.Project = this.project
pack.Logfile.SetPath(path)
if globals.Debug {
globals.Println(*pack)
}
this.runner.Inject(pack)
case io.EOF:
if globals.Verbose {
project.Printf("[%s]done, lines: %d\n", path, lineN)
}
this.chkpnt.Put(path)
this.chkpnt.Dump()
return
default:
// unknown error
panic(err)
}
}
}