Files
ScadaBridge/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/SiteRuntimeOptions.cs
T
2026-05-31 01:42:41 -04:00

60 lines
2.0 KiB
C#

namespace ZB.MOM.WW.ScadaBridge.SiteRuntime;
/// <summary>
/// Configuration options for the Site Runtime component.
/// Bound from ScadaBridge:SiteRuntime configuration section.
/// </summary>
public class SiteRuntimeOptions
{
/// <summary>
/// Number of Instance Actors to create per batch during staggered startup.
/// Default: 20.
/// </summary>
public int StartupBatchSize { get; set; } = 20;
/// <summary>
/// Delay in milliseconds between startup batches to prevent reconnection storms.
/// Default: 100ms.
/// </summary>
public int StartupBatchDelayMs { get; set; } = 100;
/// <summary>
/// Maximum call depth for recursive script calls (CallScript/CallShared).
/// Default: 10.
/// </summary>
public int MaxScriptCallDepth { get; set; } = 10;
/// <summary>
/// Default script execution timeout in seconds.
/// Default: 30 seconds.
/// </summary>
public int ScriptExecutionTimeoutSeconds { get; set; } = 30;
/// <summary>
/// Per-subscriber buffer size for the site-wide Akka stream.
/// Slow subscribers drop oldest messages when buffer is full.
/// Default: 1000.
/// </summary>
public int StreamBufferSize { get; set; } = 1000;
/// <summary>
/// SiteRuntime-009: number of dedicated threads in the script-execution scheduler.
/// Script and alarm on-trigger bodies run on these threads instead of the shared
/// .NET thread pool, so blocking script I/O cannot starve the global pool.
/// Default: 8.
/// </summary>
public int ScriptExecutionThreadCount { get; set; } = 8;
/// <summary>
/// Max mirrored native alarms retained per source binding before older entries are dropped (logged).
/// Default: 1000.
/// </summary>
public int MirroredAlarmCapPerSource { get; set; } = 1000;
/// <summary>
/// Interval in milliseconds to retry a failed native alarm subscription.
/// Default: 5000ms.
/// </summary>
public int NativeAlarmRetryIntervalMs { get; set; } = 5000;
}