perf(deploy): flatten-session caching, bulk DeploySiteAsync, paged management queries
This commit is contained in:
@@ -23,11 +23,29 @@ public interface IFlatteningPipeline
|
||||
/// which need only the flattened config + revision hash, not a compile. Structural and
|
||||
/// semantic validation still run in both cases.
|
||||
/// </param>
|
||||
/// <param name="session">
|
||||
/// Optional flatten session memoising template-chain, composition and
|
||||
/// session-global repository reads. Pass one shared session when flattening
|
||||
/// several instances in a batch (see <c>DeploymentService.DeploySiteAsync</c>)
|
||||
/// so a template chain shared by N instances is walked once. When
|
||||
/// <see langword="null"/> the pipeline creates a private single-use session,
|
||||
/// which still de-duplicates the repeated composed-chain loads inside one
|
||||
/// instance's flatten. Additive parameter — existing callers are unaffected.
|
||||
/// </param>
|
||||
/// <returns>A task that resolves to the flattened configuration, revision hash, and validation result; or a failure result if flattening could not complete.</returns>
|
||||
Task<Result<FlatteningPipelineResult>> FlattenAndValidateAsync(
|
||||
int instanceId,
|
||||
CancellationToken cancellationToken = default,
|
||||
bool validateScripts = true);
|
||||
bool validateScripts = true,
|
||||
FlattenSession? session = null);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a fresh <see cref="FlattenSession"/> bound to this pipeline's
|
||||
/// watermark, for a caller that wants to share one across a batch of
|
||||
/// <see cref="FlattenAndValidateAsync"/> calls.
|
||||
/// </summary>
|
||||
/// <returns>A new, empty session.</returns>
|
||||
FlattenSession CreateSession();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user