增强插件系统:添加插件类型支持
- 在插件接口和基本插件结构中引入插件类型(PluginType),并定义了多种预定义的插件类型。 - 更新插件管理器以支持按类型管理插件,新增按类型获取、初始化和启动插件的方法。 - 修改现有插件(如日志插件和统计插件)以实现插件类型接口,确保兼容性。 - 优化插件信息输出,包含插件类型信息。 此更新提升了插件系统的灵活性和可扩展性,便于未来添加更多插件类型。
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
@@ -27,11 +28,12 @@ var Plugin = &LoggerPlugin{
|
||||
"1.0.0",
|
||||
"简单的日志记录插件",
|
||||
"开发者",
|
||||
plugin.PluginTypeUtils, // 设置插件类型为工具插件
|
||||
),
|
||||
}
|
||||
|
||||
// Init 初始化插件
|
||||
func (p *LoggerPlugin) Init(config map[string]interface{}) error {
|
||||
func (p *LoggerPlugin) Init(ctx context.Context, config map[string]interface{}) error {
|
||||
p.config = config
|
||||
|
||||
// 获取日志文件路径
|
||||
@@ -63,7 +65,7 @@ func (p *LoggerPlugin) Init(config map[string]interface{}) error {
|
||||
}
|
||||
|
||||
// Start 启动插件
|
||||
func (p *LoggerPlugin) Start() error {
|
||||
func (p *LoggerPlugin) Start(ctx context.Context) error {
|
||||
if p.logger == nil {
|
||||
return fmt.Errorf("插件未初始化")
|
||||
}
|
||||
@@ -74,7 +76,7 @@ func (p *LoggerPlugin) Start() error {
|
||||
}
|
||||
|
||||
// Stop 停止插件
|
||||
func (p *LoggerPlugin) Stop() error {
|
||||
func (p *LoggerPlugin) Stop(ctx context.Context) error {
|
||||
if p.logger != nil {
|
||||
p.logger.Println("日志插件正在停止")
|
||||
}
|
||||
|
Reference in New Issue
Block a user