feat: only redeploy formations that have had their values changed

Rather than redeploy every formation, only deploy formations that have had their values changed from the defaults.

This still doesn't handle the case where we touch existing processes when scaling _up_, but should decrease the number of services touched otherwise during scaling.

Also note that there are no tests for this new behavior yet (tests incoming).

Refs #7396
This commit is contained in:
Jose Diaz-Gonzalez
2025-02-02 22:27:13 -05:00
parent bc75bffed2
commit 1eb41f32dc
3 changed files with 75 additions and 19 deletions

View File

@@ -160,7 +160,13 @@ func CommandScale(appName string, skipDeploy bool, processTuples []string) error
}
common.LogInfo1(fmt.Sprintf("Scaling %s processes: %s", appName, strings.Join(processTuples, " ")))
return scaleSet(appName, skipDeploy, false, processTuples)
return scaleSet(scaleSetInput{
appName: appName,
skipDeploy: skipDeploy,
clearExisting: false,
processTuples: processTuples,
deployOnlyChanged: true,
})
}
// CommandSet sets or clears a ps property for an app