예제 #1
0
//处理节点去运算
func runSummary(inputName string, node *Summary) {
	for rows := range node.Output { //接收数据
		if ns, ok := link[inputName]; ok { //如果有节点需要本节点的输出
			for _, fname := range ns { //给所有节点
				summarys[fname].Write(rows) //写数据
			}
		}
		//如果需要保存到CACHE,这里处理
		//	log.Infof("node is %v", node.Config.EnableStore, inputName, rows.Time)

		cache.AddRowsToCache(inputName, rows)

	}
}
예제 #2
0
//处理数据输入流
func runInput(inputName string, in input.InputStartFace) {
begin:
	out := in.GetOutput()
	for r := range out { //收到一条输出数据,两种选择,一是传给需要的节点,二是保存到缓存
		go func(r *common.DataRows) {
			if ns, ok := link[inputName]; ok { //如果有节点需要本节点的输出
				for _, fname := range ns { //给所有节点
					summarys[fname].Write(r) //写数据
				}
			}
			//如果需要保存到CACHE,这里处理
			//log.Infof("input is %v", in.GetConfig().EnableStore, inputName, r.Time)
			cache.AddRowsToCache(inputName, r)
		}(r)
	}
	if common.IsRun { //如果程序还没有结束,就重新启动INPUT
		in.Start()
		goto begin
	}
}