refactor: 服务接口 Stop() 重命名为 Shutdown()

This commit is contained in:
2026-05-15 09:03:14 +08:00
parent aed3a5ac22
commit 7741f7584d
6 changed files with 71 additions and 15 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ import "git.fsdpf.net/go/req"
type CronService interface {
Start() error
Stop() error
Shutdown() error
Restart() error
}
+22
View File
@@ -0,0 +1,22 @@
package contracts
type GoBridgeService interface {
Start() error
Shutdown() error
Restart() error
}
// GoBridge 继承 Controller,可通过 gobridge.WithHandlers 绑定到 Pool
// 所有公开方法自动暴露给 Python 通过 call_go() 调用。
type GoBridge interface {
_gobridge_handler()
Controller
}
// GoBridgeBase 嵌入到用户 struct 以实现 GoBridge 接口
type GoBridgeBase struct {
Controller
}
// _gobridge_handler 签名函数
func (bb *GoBridgeBase) _gobridge_handler() {}
+35 -9
View File
@@ -1,6 +1,7 @@
package contracts
import (
"io"
"net/http"
"git.fsdpf.net/go/req"
@@ -11,32 +12,57 @@ var defaultWsClientGroup WsClientGroup = "__DEFAULT__"
var wsClientID WsClientID = 0
type Http interface {
// Start 启动 HTTP 服务。
Start() error
Stop() error
// Shutdown 停止 HTTP 服务,等待当前请求处理完成后退出。
Shutdown() error
// Restart 重启 HTTP 服务,先停止再重新加载路由并启动。
Restart() error
// Invoke 在进程内直接调用 HTTP 路由处理器,不通过网络。
//
// 参数:
// - method: HTTP 方法,如 "GET"、"POST" 等。
// - path: 请求路径,如 "/api/user/list"。
// - body: 请求体,无请求体时传 nil。
// - headers: 附加请求头键值对,无需额外请求头时传 nil。
//
// 返回:
// - *http.Response: 包含状态码、响应头及响应体的结果。
// - error: 构造请求失败时返回错误。
Invoke(method, path string, body io.Reader, header http.Header) (*http.Response, error)
}
type HttpController interface {
Controller
// 获取用户信息
// User 返回当前请求的认证用户信息
User() req.User
// 获取请求信息
// Request 返回当前 HTTP 请求对象。
Request() *http.Request
// 请求处理
// Execute 处理请求并返回响应数据。
Execute(req.GlobalParams) any
// 路由信息
// Route 返回当前请求匹配到的路由信息
Route() req.Route
// 内部调用
// Call 在进程内以路由 code 发起内部调用,等同于向自身发送 HTTP 请求。
//
// 参数:
// - code: 路由标识码。
// - params: 附加请求参数。
// - category: 可选的路由匹配选项。
//
// 返回:
// - req.HttpResponse: 内部调用的响应结果。
// - error: 调用失败时返回错误。
Call(code string, params map[string]any, category ...req.RouteMatchOption) (req.HttpResponse, error)
// 内部调用
// Invoke()
// 数据库权限
// AuthDB 返回当前控制器的数据库权限模式。
AuthDB() req.ResAuthDB
}
+1 -1
View File
@@ -4,7 +4,7 @@ import "git.fsdpf.net/go/req"
type JobService interface {
Start() error
Stop() error
Shutdown() error
Restart() error
Dispatch(job string, payload any, u req.User) error
}
+11 -3
View File
@@ -7,7 +7,7 @@ import (
type MqttService interface {
Start() error
Stop() error
Shutdown() error
Restart() error
// 消息推送
@@ -33,9 +33,9 @@ type MqttService interface {
type Mqtt interface {
Controller
// 链接
// OnConnect(g GlobalParams, topic string) error
OnConnect(g req.GlobalParams) error
// 断开链接
// OnDisconnect(g GlobalParams, topic string) error
OnDisconnect(g req.GlobalParams) error
// 订阅事件
OnSubscribed(g req.GlobalParams, topic string) error
// 取消订阅事件
@@ -60,6 +60,14 @@ type MqttHandle struct {
Controller
}
func (this *MqttHandle) OnConnect(g req.GlobalParams) error {
return ErrFuncNotImplemented
}
func (this *MqttHandle) OnDisconnect(g req.GlobalParams) error {
return ErrFuncNotImplemented
}
func (this *MqttHandle) OnSubscribed(g req.GlobalParams, topic string) error {
return ErrFuncNotImplemented
}
+1 -1
View File
@@ -8,7 +8,7 @@ import (
type ResEventService interface {
Start() error
Stop() error
Shutdown() error
Restart() error
}