package scheduler import ( "context" "time" "onesvm.com/onesvm/browser-server/internal/contract" "onesvm.com/onesvm/browser-server/internal/session" ) func (c *Core) attachSession(ctx context.Context, job *contract.JobEnvelope, adapter, egress string) { if c.jar == nil || job == nil || job.Read == nil { return } job.Session = c.jar.Attach(ctx, adapter, egress, job.Read.URL) } func (c *Core) commitSession(ctx context.Context, job contract.JobEnvelope, raw *contract.RawResult, eb *contract.ErrBody) { if c.jar == nil || job.Session == nil { return } c.jar.Commit(ctx, job.Session, raw, eb) } func (c *Core) jarReaperLoop(ctx context.Context) { defer c.wg.Done() t := time.NewTicker(session.ReapEvery) defer t.Stop() for { select { case <-ctx.Done(): return case <-c.stopCh: return case <-t.C: n, err := c.jar.Reap(ctx) if err != nil { c.log.Printf("session reap 错误: %v", err) continue } if n > 0 { c.log.Printf("session reap 删除 %d 行", n) } } } }