37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using System;
|
|
|
|
namespace MxGateway.Worker.Ipc;
|
|
|
|
public sealed class WorkerPipeSessionOptions
|
|
{
|
|
public static readonly TimeSpan DefaultHeartbeatInterval = TimeSpan.FromSeconds(5);
|
|
public static readonly TimeSpan DefaultHeartbeatGrace = TimeSpan.FromSeconds(15);
|
|
|
|
public WorkerPipeSessionOptions()
|
|
{
|
|
HeartbeatInterval = DefaultHeartbeatInterval;
|
|
HeartbeatGrace = DefaultHeartbeatGrace;
|
|
}
|
|
|
|
public TimeSpan HeartbeatInterval { get; set; }
|
|
|
|
public TimeSpan HeartbeatGrace { get; set; }
|
|
|
|
public void Validate()
|
|
{
|
|
if (HeartbeatInterval <= TimeSpan.Zero)
|
|
{
|
|
throw new ArgumentOutOfRangeException(
|
|
nameof(HeartbeatInterval),
|
|
"Worker heartbeat interval must be greater than zero.");
|
|
}
|
|
|
|
if (HeartbeatGrace <= TimeSpan.Zero)
|
|
{
|
|
throw new ArgumentOutOfRangeException(
|
|
nameof(HeartbeatGrace),
|
|
"Worker heartbeat grace must be greater than zero.");
|
|
}
|
|
}
|
|
}
|