Skip to content

Commit 3c851d7

Browse files
author
yangtao
committed
feat: 优化sse接收处理逻辑增加worker逻辑
1 parent 99575a4 commit 3c851d7

5 files changed

Lines changed: 33 additions & 56 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 🚀 NodePassDash
22

3-
![Version](https://img.shields.io/badge/version-2.0.0.beta2-blue.svg)
3+
![Version](https://img.shields.io/badge/version-2.0.0.beta3-blue.svg)
44

55
NodePassDash是一个现代化的 NodePass 管理界面,基于 Go 后端 + Next.js 14、HeroUI 和 TypeScript 构建。提供实时隧道监控、流量统计和端点管理功能。
66

cmd/main.go

Lines changed: 0 additions & 22 deletions
This file was deleted.

internal/api/routes.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ type Router struct {
2929

3030
// NewRouter 创建路由器实例
3131
// 如果外部已创建 sseService / sseManager,则传入以复用,避免出现多个实例导致推流失效
32-
func NewRouter(db *sql.DB, sharedSSE *sse.Service, sharedManager *sse.Manager) *Router {
32+
func NewRouter(db *sql.DB, sseService *sse.Service, sseManager *sse.Manager) *Router {
3333
// 创建路由器(忽略末尾斜杠差异)
3434
router := mux.NewRouter()
3535
router.StrictSlash(true)
@@ -39,17 +39,12 @@ func NewRouter(db *sql.DB, sharedSSE *sse.Service, sharedManager *sse.Manager) *
3939
endpointService := endpoint.NewService(db)
4040
instanceService := instance.NewService(db)
4141
tunnelService := tunnel.NewService(db)
42-
var sseService *sse.Service
43-
var sseManager *sse.Manager
44-
if sharedSSE != nil {
45-
sseService = sharedSSE
46-
} else {
47-
sseService = sse.NewService(db)
42+
43+
if sseService == nil {
44+
panic("sseService is nil")
4845
}
49-
if sharedManager != nil {
50-
sseManager = sharedManager
51-
} else {
52-
sseManager = sse.NewManager(db, sseService)
46+
if sseManager == nil {
47+
panic("sseManager is nil")
5348
}
5449
dashboardService := dashboard.NewService(db)
5550

internal/db/db.go

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,41 @@
11
package db
22

33
import (
4-
"database/sql"
5-
_ "github.com/mattn/go-sqlite3"
6-
"log"
7-
"sync"
4+
"database/sql"
5+
"log"
6+
"sync"
7+
8+
_ "github.com/mattn/go-sqlite3"
89
)
910

1011
var (
11-
db *sql.DB
12-
once sync.Once
12+
db *sql.DB
13+
once sync.Once
1314
)
1415

1516
// DB 获取数据库单例
1617
func DB() *sql.DB {
17-
once.Do(func() {
18-
var err error
19-
db, err = sql.Open("sqlite3", "data.db?_journal_mode=WAL")
20-
if err != nil {
21-
log.Fatal(err)
22-
}
18+
once.Do(func() {
19+
var err error
20+
db, err = sql.Open("sqlite3", "data.db?_journal_mode=WAL&_busy_timeout=3000")
21+
if err != nil {
22+
log.Fatal(err)
23+
}
24+
25+
// 初始化表结构
26+
if err := initSchema(db); err != nil {
27+
log.Fatal(err)
28+
}
2329

24-
// 初始化表结构
25-
if err := initSchema(db); err != nil {
26-
log.Fatal(err)
27-
}
28-
})
29-
return db
30+
db.SetMaxOpenConns(1)
31+
db.SetMaxIdleConns(1)
32+
})
33+
return db
3034
}
3135

3236
// 初始化数据库Schema
3337
func initSchema(db *sql.DB) error {
34-
_, err := db.Exec(`
38+
_, err := db.Exec(`
3539
CREATE TABLE IF NOT EXISTS users (
3640
id INTEGER PRIMARY KEY AUTOINCREMENT,
3741
name TEXT NOT NULL,
@@ -40,5 +44,5 @@ func initSchema(db *sql.DB) error {
4044
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
4145
)
4246
`)
43-
return err
44-
}
47+
return err
48+
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "NodePassDash",
3-
"version": "2.0.0.beta2",
3+
"version": "2.0.0.beta3",
44
"private": true,
55
"scripts": {
66
"dev": "next dev",

0 commit comments

Comments
 (0)