118 lines
3.0 KiB
C#
118 lines
3.0 KiB
C#
namespace OrpaonVision.ConfigApp.Infrastructure.Options;
|
|
|
|
/// <summary>
|
|
/// 会话持久化选项。
|
|
/// </summary>
|
|
public sealed class SessionPersistenceOptions
|
|
{
|
|
/// <summary>
|
|
/// 是否启用会话持久化。
|
|
/// </summary>
|
|
public bool EnablePersistence { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 会话数据保留天数。
|
|
/// </summary>
|
|
public int RetentionDays { get; set; } = 30;
|
|
|
|
/// <summary>
|
|
/// 是否启用自动清理。
|
|
/// </summary>
|
|
public bool EnableAutoCleanup { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 自动清理执行时间(小时)。
|
|
/// </summary>
|
|
public int AutoCleanupHour { get; set; } = 2; // 凌晨2点执行
|
|
|
|
/// <summary>
|
|
/// 批量操作大小。
|
|
/// </summary>
|
|
public int BatchSize { get; set; } = 1000;
|
|
|
|
/// <summary>
|
|
/// 会话事件保留天数。
|
|
/// </summary>
|
|
public int EventRetentionDays { get; set; } = 7;
|
|
|
|
/// <summary>
|
|
/// 是否启用会话压缩。
|
|
/// </summary>
|
|
public bool EnableCompression { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 数据库连接字符串。
|
|
/// </summary>
|
|
public string ConnectionString { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// 会话表名。
|
|
/// </summary>
|
|
public string SessionTableName { get; set; } = "mdl_production_session";
|
|
|
|
/// <summary>
|
|
/// 会话事件表名。
|
|
/// </summary>
|
|
public string EventTableName { get; set; } = "mdl_production_session_event";
|
|
|
|
/// <summary>
|
|
/// 是否启用异步写入。
|
|
/// </summary>
|
|
public bool EnableAsyncWrite { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 异步写入队列大小。
|
|
/// </summary>
|
|
public int AsyncWriteQueueSize { get; set; } = 10000;
|
|
|
|
/// <summary>
|
|
/// 异步写入批次大小。
|
|
/// </summary>
|
|
public int AsyncWriteBatchSize { get; set; } = 100;
|
|
|
|
/// <summary>
|
|
/// 异步写入间隔(毫秒)。
|
|
/// </summary>
|
|
public int AsyncWriteIntervalMs { get; set; } = 1000;
|
|
|
|
/// <summary>
|
|
/// 是否启用会话缓存。
|
|
/// </summary>
|
|
public bool EnableCaching { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 缓存过期时间(分钟)。
|
|
/// </summary>
|
|
public int CacheExpirationMinutes { get; set; } = 30;
|
|
|
|
/// <summary>
|
|
/// 最大缓存大小。
|
|
/// </summary>
|
|
public int MaxCacheSize { get; set; } = 10000;
|
|
|
|
/// <summary>
|
|
/// 是否启用会话备份。
|
|
/// </summary>
|
|
public bool EnableBackup { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// 备份保留天数。
|
|
/// </summary>
|
|
public int BackupRetentionDays { get; set; } = 90;
|
|
|
|
/// <summary>
|
|
/// 备份路径。
|
|
/// </summary>
|
|
public string BackupPath { get; set; } = "backups/sessions";
|
|
|
|
/// <summary>
|
|
/// 是否启用会话加密。
|
|
/// </summary>
|
|
public bool EnableEncryption { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// 加密密钥。
|
|
/// </summary>
|
|
public string EncryptionKey { get; set; } = string.Empty;
|
|
}
|