PipelineScratchSpace
Namespace: Meshmakers.Octo.Sdk.Common.EtlDataPipeline.Execution
Default IPipelineScratchSpace backed by a per-execution directory under PipelineScratchSpace.RootDirectory. The directory is created lazily on first use and removed on PipelineScratchSpace.DisposeAsync().
public sealed class PipelineScratchSpace : IPipelineScratchSpace, IAsyncDisposable
Inheritance Object → PipelineScratchSpace
Implements IPipelineScratchSpace, IAsyncDisposable
Properties
RootDirectory
Root under which every execution's scratch directory is created. All scratch directories share this root so PipelineScratchSpace.SweepStaleDirectories(TimeSpan) can find and delete ones orphaned by a hard crash. Overridable at startup (e.g. to point at a sized ephemeral volume) before any pipeline runs.
public static string RootDirectory { get; set; }
Property Value
Constructors
PipelineScratchSpace()
Creates a scratch space with a unique directory under PipelineScratchSpace.RootDirectory.
public PipelineScratchSpace()
Methods
CreateFile(String)
public string CreateFile(string extension)
Parameters
extension String
Returns
OpenWrite(String)
public Stream OpenWrite(string token)
Parameters
token String
Returns
OpenRead(String)
public Stream OpenRead(string token)
Parameters
token String
Returns
GetLength(String)
public long GetLength(string token)
Parameters
token String
Returns
Exists(String)
public bool Exists(string token)
Parameters
token String
Returns
DisposeAsync()
public ValueTask DisposeAsync()
Returns
SweepStaleDirectories(TimeSpan)
Deletes scratch directories under PipelineScratchSpace.RootDirectory whose last-write
time is older than olderThan. Belt-and-suspenders cleanup for
directories orphaned by a process crash / OOM that skipped the per-execution
dispose. Best-effort: never throws. Call once at adapter startup.
public static void SweepStaleDirectories(TimeSpan olderThan)
Parameters
olderThan TimeSpan