7b0b9c7365
Solution + 23 src projects + 26 test projects renamed; folders, csproj, namespaces, and ScadaLinkDbContext/ScadaBridgeDbContext class updated. ActorSystem "scadalink" → "scadabridge", Akka seed-node URLs migrated. SQL roles/logins, LDAP domains, CLI command name, and CLI config dir (~/.scadalink → ~/.scadabridge) also renamed. Build green; 5 Host.Tests fail awaiting SQL login rename in next commit. Pre-existing StaleTagMonitor timing flakes unchanged. Rename script committed at tools/rename-to-scadabridge.sh.
40 lines
2.0 KiB
C#
40 lines
2.0 KiB
C#
namespace ZB.MOM.WW.ScadaBridge.StoreAndForward;
|
||
|
||
/// <summary>
|
||
/// WP-9/10: Configuration options for the Store-and-Forward Engine.
|
||
/// </summary>
|
||
public class StoreAndForwardOptions
|
||
{
|
||
/// <summary>Path to the SQLite database for S&F message persistence.</summary>
|
||
public string SqliteDbPath { get; set; } = "./data/store-and-forward.db";
|
||
|
||
/// <summary>WP-11: Whether to replicate buffer operations to standby node.</summary>
|
||
public bool ReplicationEnabled { get; set; } = true;
|
||
|
||
/// <summary>WP-10: Default retry interval for messages without per-source settings.</summary>
|
||
public TimeSpan DefaultRetryInterval { get; set; } = TimeSpan.FromSeconds(30);
|
||
|
||
/// <summary>
|
||
/// WP-10: Default maximum retry count before parking. Applied when an
|
||
/// <c>EnqueueAsync</c> caller does not pass an explicit <c>maxRetries</c>.
|
||
/// <para>
|
||
/// <b>StoreAndForward-019:</b> this default is enforced uniformly across
|
||
/// every category, including <see cref="Commons.Types.Enums.StoreAndForwardCategory.Notification"/>:
|
||
/// once the buffered message's retry count reaches this cap the engine
|
||
/// parks the row. The Component-StoreAndForward.md "notifications do not
|
||
/// park" wording reflects the operational <i>intent</i> when central is
|
||
/// reachable on the normal cadence; under a sustained central outage that
|
||
/// exceeds <c>DefaultMaxRetries × forward-interval</c> a buffered
|
||
/// notification <i>will</i> park and surface in the parked-message UI,
|
||
/// matching the rest of the system's bounded-retry-then-park behaviour.
|
||
/// Callers that genuinely require unbounded retry must pass
|
||
/// <c>maxRetries: 0</c> on <c>EnqueueAsync</c> (the documented "no limit"
|
||
/// escape hatch — see <c>StoreAndForwardService.EnqueueAsync</c>).
|
||
/// </para>
|
||
/// </summary>
|
||
public int DefaultMaxRetries { get; set; } = 50;
|
||
|
||
/// <summary>WP-10: Interval for the background retry timer sweep.</summary>
|
||
public TimeSpan RetryTimerInterval { get; set; } = TimeSpan.FromSeconds(10);
|
||
}
|