File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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
255267func (this * Migrator ) listenOnPanicAbort () {
256268 err := <- this .migrationContext .PanicAbort
You can’t perform that action at this time.
0 commit comments