禁用插件相关

This commit is contained in:
www.xueximeng.com
2025-08-21 10:11:26 +08:00
parent 166098913f
commit a8b2183794
4 changed files with 30 additions and 15 deletions

View File

@@ -353,6 +353,7 @@ GET /api/search?kw=速度与激情&channels=tgsearchers3,xxx&conc=2&refresh=true
```json
{
"channels_count": 1,
"channels": [
"tgsearchers3"
],

View File

@@ -32,10 +32,12 @@ func SetupRouter(searchService *service.SearchService) *gin.Engine {
// 健康检查接口
api.GET("/health", func(c *gin.Context) {
// 获取插件信息
// 根据配置决定是否返回插件信息
pluginCount := 0
pluginNames := []string{}
if searchService != nil && searchService.GetPluginManager() != nil {
pluginsEnabled := config.AppConfig.AsyncPluginEnabled
if pluginsEnabled && searchService != nil && searchService.GetPluginManager() != nil {
plugins := searchService.GetPluginManager().GetPlugins()
pluginCount = len(plugins)
for _, p := range plugins {
@@ -45,14 +47,22 @@ func SetupRouter(searchService *service.SearchService) *gin.Engine {
// 获取频道信息
channels := config.AppConfig.DefaultChannels
channelsCount := len(channels)
c.JSON(200, gin.H{
response := gin.H{
"status": "ok",
"plugins_enabled": true,
"plugin_count": pluginCount,
"plugins": pluginNames,
"plugins_enabled": pluginsEnabled,
"channels": channels,
})
"channels_count": channelsCount,
}
// 只有当插件启用时才返回插件相关信息
if pluginsEnabled {
response["plugin_count"] = pluginCount
response["plugins"] = pluginNames
}
c.JSON(200, response)
})
}

View File

@@ -143,7 +143,8 @@ func getDefaultConcurrency() int {
return concurrency
}
// 更新默认并发数(在真实插件数已知时调用)
// 更新默认并发数(根据实际插件数或0调用)
// pluginCount: 如果插件被禁用则为0否则为实际插件数
func UpdateDefaultConcurrency(pluginCount int) {
if AppConfig == nil {
return
@@ -158,7 +159,7 @@ func UpdateDefaultConcurrency(pluginCount int) {
// 计算频道数
channelCount := len(AppConfig.DefaultChannels)
// 计算并发数 = 频道数 + 实际插件数 + 10
// 计算并发数 = 频道数 + 插件数插件禁用时为0+ 10
concurrency := channelCount + pluginCount + 10
if concurrency < 1 {
concurrency = 1 // 确保至少为1

15
main.go
View File

@@ -107,8 +107,12 @@ func startServer() {
// 注册所有全局插件通过init函数自动注册到全局注册表
pluginManager.RegisterAllGlobalPlugins()
// 更新默认并发数(使用实际插件数
config.UpdateDefaultConcurrency(len(pluginManager.GetPlugins()))
// 更新默认并发数(如果插件被禁用则使用0
pluginCount := 0
if config.AppConfig.AsyncPluginEnabled {
pluginCount = len(pluginManager.GetPlugins())
}
config.UpdateDefaultConcurrency(pluginCount)
// 初始化搜索服务
searchService := service.NewSearchService(pluginManager)
@@ -211,7 +215,8 @@ func printServiceInfo(port string, pluginManager *plugin.PluginManager) {
} else {
channelCount := len(config.AppConfig.DefaultChannels)
pluginCount := 0
if pluginManager != nil {
// 只有插件启用时才计算插件数
if config.AppConfig.AsyncPluginEnabled && pluginManager != nil {
pluginCount = len(pluginManager.GetPlugins())
}
fmt.Printf("默认并发数: %d (= 频道数%d + 插件数%d + 10)\n",
@@ -232,9 +237,7 @@ func printServiceInfo(port string, pluginManager *plugin.PluginManager) {
if config.AppConfig.EnableCompression {
fmt.Printf("响应压缩已启用: 最小压缩大小=%d字节\n",
config.AppConfig.MinSizeToCompress)
} else {
fmt.Println("响应压缩已禁用")
}
}
// 输出GC配置信息
fmt.Printf("GC配置: 触发阈值=%d%%, 内存优化=%v\n",