返回 DeepSeek-Reasonix
status_read.go
根目录 / internal / sessioncatalog / status_read.go
1 package sessioncatalog
2
3 import (
4 "context"
5 )
6
7 func (c *Catalog) loadStatus(ctx context.Context) error {
8 var revision uint64
9 if err := c.readDB(ctx).QueryRowContext(ctx, `SELECT revision FROM catalog_state WHERE id=1`).Scan(&revision); err != nil {
10 return err
11 }
12 c.revision.Store(revision)
13 c.statusMu.Lock()
14 c.status.Revision = revision
15 c.statusMu.Unlock()
16 c.refreshCounts(ctx)
17 return nil
18 }
19
20 func (c *Catalog) Status() Status {
21 if c == nil {
22 return Status{State: StateDegraded, Mode: ModeMemory, LastError: "session catalog unavailable"}
23 }
24 c.statusMu.RLock()
25 defer c.statusMu.RUnlock()
26 status := c.status
27 if c.readable() != nil && status.State != StateClosed {
28 status.State, status.LastError = StateDegraded, c.invalidReason.Error()
29 }
30 return status
31 }
32
32 lines GO