Add flag to customize the interval which the onStatus hook is called

This commit is contained in:
Tyler Knodell 2022-02-01 08:54:55 -07:00
parent d6c83638d7
commit fbb53f4b04
3 changed files with 3 additions and 1 deletions

View File

@ -140,6 +140,7 @@ type MigrationContext struct {
HooksHintMessage string HooksHintMessage string
HooksHintOwner string HooksHintOwner string
HooksHintToken string HooksHintToken string
HooksStatusIntervalSec int64
DropServeSocket bool DropServeSocket bool
ServeSocketFile string ServeSocketFile string

View File

@ -125,6 +125,7 @@ func main() {
flag.StringVar(&migrationContext.HooksHintMessage, "hooks-hint", "", "arbitrary message to be injected to hooks via GH_OST_HOOKS_HINT, for your convenience") flag.StringVar(&migrationContext.HooksHintMessage, "hooks-hint", "", "arbitrary message to be injected to hooks via GH_OST_HOOKS_HINT, for your convenience")
flag.StringVar(&migrationContext.HooksHintOwner, "hooks-hint-owner", "", "arbitrary name of owner to be injected to hooks via GH_OST_HOOKS_HINT_OWNER, for your convenience") flag.StringVar(&migrationContext.HooksHintOwner, "hooks-hint-owner", "", "arbitrary name of owner to be injected to hooks via GH_OST_HOOKS_HINT_OWNER, for your convenience")
flag.StringVar(&migrationContext.HooksHintToken, "hooks-hint-token", "", "arbitrary token to be injected to hooks via GH_OST_HOOKS_HINT_TOKEN, for your convenience") flag.StringVar(&migrationContext.HooksHintToken, "hooks-hint-token", "", "arbitrary token to be injected to hooks via GH_OST_HOOKS_HINT_TOKEN, for your convenience")
flag.Int64Var(&migrationContext.HooksStatusIntervalSec, "hooks-status-interval", 60, "how many seconds to wait between calling onStatus hook")
flag.UintVar(&migrationContext.ReplicaServerId, "replica-server-id", 99999, "server id used by gh-ost process. Default: 99999") flag.UintVar(&migrationContext.ReplicaServerId, "replica-server-id", 99999, "server id used by gh-ost process. Default: 99999")

View File

@ -1016,7 +1016,7 @@ func (this *Migrator) printStatus(rule PrintStatusRule, writers ...io.Writer) {
w := io.MultiWriter(writers...) w := io.MultiWriter(writers...)
fmt.Fprintln(w, status) fmt.Fprintln(w, status)
if elapsedSeconds%60 == 0 { if elapsedSeconds%this.migrationContext.HooksStatusIntervalSec == 0 {
this.hooksExecutor.onStatus(status) this.hooksExecutor.onStatus(status)
} }
} }