refactor(api): snapshot propagation #2966
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This pull request improves the reliability and maintainability of the snapshot propagation logic in the
SnapshotManager. The main changes include refactoring the way snapshots are propagated to runners, enhancing error logging, and adjusting lock durations for synchronization. These updates help ensure better error handling, clearer code, and more robust background job execution.Snapshot propagation and error handling improvements:
propagateSnapshotToRunnersmethod to accept aSnapshotobject instead of just a reference string, and updated all related usages to pass the full snapshot. This improves clarity and consistency throughout the code.Promise.allSettledand logging all promise rejections, ensuring that errors are not silently ignored.Synchronization and scheduling adjustments:
syncRunnerSnapshotsjob from 30 seconds to one hour, reducing the risk of concurrent executions.waitForCompletion: trueoption from the@Crondecorator for thecheck-snapshot-statejob, which may improve job scheduling and prevent potential blocking.Type and import clean-up:
FindOptionsWherefor improved type safety and query clarity in TypeORM operations.Documentation