Skip to content

Commit 8aee288

Browse files
committed
Handle onChangelogHeartbeatEvent and update CurrentHeartbeatLag
1 parent 7207bc1 commit 8aee288

2 files changed

Lines changed: 13 additions & 0 deletions

File tree

go/base/context.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ type MigrationContext struct {
178178
RenameTablesEndTime time.Time
179179
pointOfInterestTime time.Time
180180
pointOfInterestTimeMutex *sync.Mutex
181+
CurrentHeartbeatLag int64
181182
CurrentLag int64
182183
currentProgress uint64
183184
ThrottleHTTPStatusCode int64

go/logic/migrator.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,8 @@ func (this *Migrator) onChangelogEvent(dmlEvent *binlog.BinlogDMLEvent) (err err
213213
switch hint := dmlEvent.NewColumnValues.StringColumn(2); hint {
214214
case "state":
215215
return this.onChangelogStateEvent(dmlEvent)
216+
case "heartbeat":
217+
return this.onChangelogHeartbeatEvent(dmlEvent)
216218
default:
217219
return nil
218220
}
@@ -251,6 +253,16 @@ func (this *Migrator) onChangelogStateEvent(dmlEvent *binlog.BinlogDMLEvent) (er
251253
return nil
252254
}
253255

256+
func (this *Migrator) onChangelogHeartbeatEvent(dmlEvent *binlog.BinlogDMLEvent) (err error) {
257+
changelogHeartbeatString := dmlEvent.NewColumnValues.StringColumn(3)
258+
if lag, err := parseChangelogHeartbeat(changelogHeartbeatString); err != nil {
259+
return this.migrationContext.Log.Errore(err)
260+
} else {
261+
atomic.StoreInt64(&this.migrationContext.CurrentHeartbeatLag, int64(lag))
262+
return nil
263+
}
264+
}
265+
254266
// listenOnPanicAbort aborts on abort request
255267
func (this *Migrator) listenOnPanicAbort() {
256268
err := <-this.migrationContext.PanicAbort

0 commit comments

Comments
 (0)