mirror of
https://gitcode.com/JianFeeeee/webui4frpc.git
synced 2026-10-03 07:34:00 +00:00
feat(web): cluster page shows token ring — ring topology/leader/load, pending tasks, active forward topology with owner, incremental log sync view (e2e verified)
This commit is contained in:
@ -78,12 +78,12 @@ type State struct {
|
||||
|
||||
// Token is the circulating message: one physical token, two phases per cycle.
|
||||
type Token struct {
|
||||
Cycle int64 `json:"cycle"`
|
||||
Phase int `json:"phase"`
|
||||
State State `json:"state"`
|
||||
Cycle int64 `json:"cycle"`
|
||||
Phase int `json:"phase"`
|
||||
State State `json:"state"`
|
||||
Log []LogEntry `json:"logDelta,omitempty"`
|
||||
Passed []string `json:"passed,omitempty"`
|
||||
SentAt int64 `json:"sentAt,omitempty"`
|
||||
Passed []string `json:"passed,omitempty"`
|
||||
SentAt int64 `json:"sentAt,omitempty"`
|
||||
}
|
||||
|
||||
// ---- 环图操作 ---- //
|
||||
|
||||
@ -41,8 +41,8 @@ type Engine struct {
|
||||
send func(ctx context.Context, next string, tk *Token) error
|
||||
|
||||
// inflight tracks token-in-flight state (leader only).
|
||||
inflight inFlight
|
||||
Log *ClusterLog
|
||||
inflight inFlight
|
||||
Log *ClusterLog
|
||||
lastLogSent int64
|
||||
// lastRingStart time of the previous cycle launch (leader throttle).
|
||||
lastRingStart time.Time
|
||||
|
||||
@ -29,19 +29,19 @@ const (
|
||||
|
||||
// LogEntry is one immutable, append-only cluster operation.
|
||||
type LogEntry struct {
|
||||
Seq int64 `json:"seq"`
|
||||
Node string `json:"node"`
|
||||
Kind string `json:"kind"`
|
||||
Data json.RawMessage `json:"data,omitempty"`
|
||||
At int64 `json:"at"`
|
||||
Seq int64 `json:"seq"`
|
||||
Node string `json:"node"`
|
||||
Kind string `json:"kind"`
|
||||
Data json.RawMessage `json:"data,omitempty"`
|
||||
At int64 `json:"at"`
|
||||
}
|
||||
|
||||
// ClusterLog is a node's local operation log with a sync watermark.
|
||||
type ClusterLog struct {
|
||||
mu sync.Mutex
|
||||
Seq int64 // highest local seq issued
|
||||
Log []LogEntry // append-only
|
||||
Synced int64 // watermark: entries <= this are known to remote nodes
|
||||
mu sync.Mutex
|
||||
Seq int64 // highest local seq issued
|
||||
Log []LogEntry // append-only
|
||||
Synced int64 // watermark: entries <= this are known to remote nodes
|
||||
}
|
||||
|
||||
// NewClusterLog creates an empty log with initial sequence.
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
internal/httpapi/dist/index.html
vendored
4
internal/httpapi/dist/index.html
vendored
@ -4,8 +4,8 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>webui-frpc</title>
|
||||
<script type="module" crossorigin src="/assets/index-C9C9_j3w.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-C5T3LFGh.css">
|
||||
<script type="module" crossorigin src="/assets/index-traMph4r.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-CkgfmeCs.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
Reference in New Issue
Block a user