···141 }
142143 // If last time is older than a week, start from now
144- if time.Now().UnixMicro()-lastTimeUs > 7*24*60*60*1000*1000 {
145 lastTimeUs = time.Now().UnixMicro()
146- l.Warn("last time us is older than a week. discarding that and starting from now")
147 err = j.db.UpdateLastTimeUs(lastTimeUs)
148 if err != nil {
149 l.Error("failed to save last time us", "error", err)
···141 }
142143 // If last time is older than a week, start from now
144+ if time.Now().UnixMicro()-lastTimeUs > 2*24*60*60*1000*1000 {
145 lastTimeUs = time.Now().UnixMicro()
146+ l.Warn("last time us is older than 2 days; discarding that and starting from now")
147 err = j.db.UpdateLastTimeUs(lastTimeUs)
148 if err != nil {
149 l.Error("failed to save last time us", "error", err)
+14-9
knotserver/jetstream.go
···29 return nil
30}
3132-func (h *Handle) processKnotMember(ctx context.Context, did string, record tangled.KnotMember, eventTime int64) error {
33 l := log.FromContext(ctx)
3435 if record.Domain != h.c.Server.Hostname {
···58 return fmt.Errorf("failed to fetch and add keys: %w", err)
59 }
6061- lastTimeUs := eventTime + 1
62- fmt.Println("lastTimeUs", lastTimeUs)
63- if err := h.db.UpdateLastTimeUs(lastTimeUs); err != nil {
64- return fmt.Errorf("failed to save last time us: %w", err)
65- }
66- h.jc.UpdateDids([]string{did})
67 return nil
68}
69···116 return nil
117 }
11800000000000119 raw := json.RawMessage(event.Commit.Record)
120121 switch event.Commit.Collection {
···133 if err := json.Unmarshal(raw, &record); err != nil {
134 return fmt.Errorf("failed to unmarshal record: %w", err)
135 }
136- if err := h.processKnotMember(ctx, did, record, event.TimeUS); err != nil {
137 return fmt.Errorf("failed to process knot member: %w", err)
138 }
139 }
140141- return nil
142}
···29 return nil
30}
3132+func (h *Handle) processKnotMember(ctx context.Context, did string, record tangled.KnotMember) error {
33 l := log.FromContext(ctx)
3435 if record.Domain != h.c.Server.Hostname {
···58 return fmt.Errorf("failed to fetch and add keys: %w", err)
59 }
6000000061 return nil
62}
63···110 return nil
111 }
112113+ var err error
114+ defer func() {
115+ eventTime := event.TimeUS
116+ lastTimeUs := eventTime + 1
117+ fmt.Println("lastTimeUs", lastTimeUs)
118+ if err := h.db.UpdateLastTimeUs(lastTimeUs); err != nil {
119+ err = fmt.Errorf("(deferred) failed to save last time us: %w", err)
120+ }
121+ h.jc.UpdateDids([]string{did})
122+ }()
123+124 raw := json.RawMessage(event.Commit.Record)
125126 switch event.Commit.Collection {
···138 if err := json.Unmarshal(raw, &record); err != nil {
139 return fmt.Errorf("failed to unmarshal record: %w", err)
140 }
141+ if err := h.processKnotMember(ctx, did, record); err != nil {
142 return fmt.Errorf("failed to process knot member: %w", err)
143 }
144 }
145146+ return err
147}