|
|
@ -97,13 +97,19 @@ func runFilerReplicate(cmd *Command, args []string) bool { |
|
|
|
replicator := replication.NewReplicator(config, "source.filer.", dataSink) |
|
|
|
|
|
|
|
for { |
|
|
|
key, m, err := notificationInput.ReceiveMessage() |
|
|
|
key, m, onSuccessFn, onFailureFn, err := notificationInput.ReceiveMessage() |
|
|
|
if err != nil { |
|
|
|
glog.Errorf("receive %s: %+v", key, err) |
|
|
|
if onFailureFn != nil { |
|
|
|
onFailureFn() |
|
|
|
} |
|
|
|
continue |
|
|
|
} |
|
|
|
if key == "" { |
|
|
|
// long poll received no messages
|
|
|
|
if onSuccessFn != nil { |
|
|
|
onSuccessFn() |
|
|
|
} |
|
|
|
continue |
|
|
|
} |
|
|
|
if m.OldEntry != nil && m.NewEntry == nil { |
|
|
@ -115,8 +121,14 @@ func runFilerReplicate(cmd *Command, args []string) bool { |
|
|
|
} |
|
|
|
if err = replicator.Replicate(context.Background(), key, m); err != nil { |
|
|
|
glog.Errorf("replicate %s: %+v", key, err) |
|
|
|
if onFailureFn != nil { |
|
|
|
onFailureFn() |
|
|
|
} |
|
|
|
} else { |
|
|
|
glog.V(1).Infof("replicated %s", key) |
|
|
|
if onSuccessFn != nil { |
|
|
|
onSuccessFn() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|