MCPcopy Create free account
hub / github.com/cloud-native-go/examples / initializeTransactionLog

Function initializeTransactionLog

ch05/ch05_06/service.go:100–132  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

98}
99
100func initializeTransactionLog() error {
101 var err error
102
103 transact, err = NewTransactionLogger("transactions.log")
104 if err != nil {
105 return fmt.Errorf("failed to create transaction logger: %w", err)
106 }
107
108 events, errors := transact.ReadEvents()
109 count, ok, e := 0, true, Event{}
110
111 for ok && err == nil {
112 select {
113 case err, ok = <-errors:
114
115 case e, ok = <-events:
116 switch e.EventType {
117 case EventDelete: // Got a DELETE event!
118 err = Delete(e.Key)
119 count++
120 case EventPut: // Got a PUT event!
121 err = Put(e.Key, e.Value)
122 count++
123 }
124 }
125 }
126
127 log.Printf("%d events replayed\n", count)
128
129 transact.Run()
130
131 return err
132}
133
134func main() {
135 // Initializes the transaction log and loads existing data, if any.

Callers 1

mainFunction · 0.70

Calls 5

NewTransactionLoggerFunction · 0.70
DeleteFunction · 0.70
PutFunction · 0.70
ReadEventsMethod · 0.65
RunMethod · 0.65

Tested by

no test coverage detected