forked from p93542168/wheat-cache
!61 middle_msg
Merge pull request !61 from Sodesnei/feat-plugin-install
This commit is contained in:
commit
6ef4654c63
|
@ -0,0 +1,47 @@
|
||||||
|
### 中间件调用
|
||||||
|
|
||||||
|
|
||||||
|
### 创建事件
|
||||||
|
|
||||||
|
event := event.NewEvent("logcontext")
|
||||||
|
|
||||||
|
|
||||||
|
### 创建驱动
|
||||||
|
|
||||||
|
middleware := NewMiddleWare()
|
||||||
|
|
||||||
|
### 将事件推入驱动
|
||||||
|
|
||||||
|
middleware.eventProduce.Call(ctx, event)
|
||||||
|
|
||||||
|
|
||||||
|
### 获取驱动的事件
|
||||||
|
middleware.eventConsumer.Reciver(ctx)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 插件接口
|
||||||
|
type MiddleToolsInterface interface {
|
||||||
|
Init() // 初始化
|
||||||
|
Exec(interface{}) (interface{}, error) // 处理用户发送事件
|
||||||
|
Name() string // 获取中间件名称
|
||||||
|
Describe() string // 描述
|
||||||
|
}
|
||||||
|
|
||||||
|
### 插件的New方法规定为 NewMiddleWare()
|
||||||
|
每个插件都要定义NewMiddleWare()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 将插件名 “logMiddle” 注册到配置文件wheat-cache.yaml,其他插件注册
|
||||||
|
plugins-control:
|
||||||
|
logcontext: ["logMiddle"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,34 @@
|
||||||
package middlemsg
|
package middlemsg
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"gitee.com/timedb/wheatCache/pkg/errorx"
|
||||||
|
"gitee.com/timedb/wheatCache/pkg/event"
|
||||||
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
MiddleMsgKey = "middleMsgKey"
|
MiddleMsgKey = "middleMsgKey"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func SendMiddleMsg(
|
||||||
|
ctx context.Context,
|
||||||
|
middleProduce event.ProduceInterface,
|
||||||
|
val interface{},
|
||||||
|
) error {
|
||||||
|
if middleProduce == nil {
|
||||||
|
return errorx.New("middleProduce not is nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
var eventName string
|
||||||
|
|
||||||
|
switch val.(type) {
|
||||||
|
case LogContext:
|
||||||
|
eventName = EventNameLog
|
||||||
|
}
|
||||||
|
|
||||||
|
msgEvent := event.NewEvent(eventName)
|
||||||
|
msgEvent.SetValue(MiddleMsgKey, val)
|
||||||
|
middleProduce.Call(ctx, msgEvent)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
@ -1,8 +1,23 @@
|
||||||
package middlemsg
|
package middlemsg
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
// []pulginsINfo
|
// []pulginsINfo
|
||||||
// 1. Version
|
// 1. Version
|
||||||
// 2. desc
|
// 2. desc
|
||||||
// 3. Name
|
// 3. Name
|
||||||
// 4. 运行状态
|
// 4. 运行状态
|
||||||
// 5. 运行时间
|
|
||||||
|
const (
|
||||||
|
EventNamePlug = "plugins-info"
|
||||||
|
)
|
||||||
|
|
||||||
|
type PulginsInfo struct {
|
||||||
|
Version string
|
||||||
|
Desc string
|
||||||
|
Name string
|
||||||
|
Statux string
|
||||||
|
Time time.Duration
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue