规则引擎

This commit is contained in:
PandaGoAdmin
2023-02-28 14:56:21 +08:00
parent e048fa53a5
commit 8e854ce527
13 changed files with 667 additions and 215 deletions

View File

@@ -0,0 +1,35 @@
package nodes
import (
"github.com/sirupsen/logrus"
"pandax/pkg/rule_engine/message"
)
const InputNodeName = "InputNode"
type inputNode struct {
bareNode
}
type inputNodeFactory struct{}
func (f inputNodeFactory) Name() string { return "InputNode" }
func (f inputNodeFactory) Category() string { return NODE_CATEGORY_OTHERS }
func (f inputNodeFactory) Create(id string, meta Metadata) (Node, error) {
labels := []string{}
node := &inputNode{
bareNode: newBareNode(InputNodeName, id, meta, labels),
}
return node, nil
}
func (n *inputNode) Handle(msg message.Message) error {
logrus.Infof("%s handle message '%s'", n.Name(), msg.GetType())
nodes := n.GetLinkedNodes()
for _, node := range nodes {
return node.Handle(msg)
}
return nil
}