Skip to main content

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​

String

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​

String

OpenWrite(String)​

public Stream OpenWrite(string token)

Parameters​

token String

Returns​

Stream

OpenRead(String)​

public Stream OpenRead(string token)

Parameters​

token String

Returns​

Stream

GetLength(String)​

public long GetLength(string token)

Parameters​

token String

Returns​

Int64

Exists(String)​

public bool Exists(string token)

Parameters​

token String

Returns​

Boolean

DisposeAsync()​

public ValueTask DisposeAsync()

Returns​

ValueTask

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