Add queue hardening by modifying DeploymentJobTargets, DeploymentJobSteps, and DeploymentJobs tables
- Drop existing indexes on DeploymentJobTargets and DeploymentJobSteps - Alter Status column to nvarchar(450) in DeploymentJobTargets, DeploymentJobSteps, and DeploymentJobs - Add new columns: Finished, OutputMetadataJson, Started to DeploymentJobTargets; ErrorMessage, Finished, OutputMetadataJson, Started to DeploymentJobSteps; CorrelationId, HeartbeatAt, Priority, RowVersion, ScheduledAt, WorkerName to DeploymentJobs - Create new indexes for improved query performance - Add constraints to ensure OutputMetadataJson is valid JSON - Record migration in __EFMigrationsHistory
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Microsoft.SelfService.Portal.Core.API.Models
|
||||
{
|
||||
public class QueueJobModel : BaseModel
|
||||
@@ -40,6 +42,24 @@ namespace Microsoft.SelfService.Portal.Core.API.Models
|
||||
[Column(Order = 12)]
|
||||
public string? RuleSnapshotJson { get; set; }
|
||||
|
||||
[Column(Order = 13)]
|
||||
public Guid CorrelationId { get; set; } = Guid.NewGuid();
|
||||
|
||||
[Column(Order = 14)]
|
||||
public int Priority { get; set; } = 100;
|
||||
|
||||
[Column(Order = 15)]
|
||||
public DateTime? ScheduledAt { get; set; }
|
||||
|
||||
[Column(Order = 16)]
|
||||
public DateTime? HeartbeatAt { get; set; }
|
||||
|
||||
[Column(Order = 17)]
|
||||
public string? WorkerName { get; set; }
|
||||
|
||||
[Timestamp]
|
||||
public byte[] RowVersion { get; set; } = [];
|
||||
|
||||
public ICollection<QueueJobTargetModel> Targets { get; set; } = new List<QueueJobTargetModel>();
|
||||
public ICollection<QueueJobStepModel> Steps { get; set; } = new List<QueueJobStepModel>();
|
||||
}
|
||||
|
||||
@@ -34,6 +34,18 @@ namespace Microsoft.SelfService.Portal.Core.API.Models
|
||||
[Column(Order = 10)]
|
||||
public string? ApprovalComment { get; set; }
|
||||
|
||||
[Column(Order = 11)]
|
||||
public DateTime? Started { get; set; }
|
||||
|
||||
[Column(Order = 12)]
|
||||
public DateTime? Finished { get; set; }
|
||||
|
||||
[Column(Order = 13)]
|
||||
public string? OutputMetadataJson { get; set; }
|
||||
|
||||
[Column(Order = 14)]
|
||||
public string? ErrorMessage { get; set; }
|
||||
|
||||
public QueueJobModel QueueJob { get; set; }
|
||||
public QueueJobStepModel? DependsOnQueueJobStep { get; set; }
|
||||
}
|
||||
|
||||
@@ -25,6 +25,15 @@ namespace Microsoft.SelfService.Portal.Core.API.Models
|
||||
[Column(Order = 7)]
|
||||
public string? ErrorMessage { get; set; }
|
||||
|
||||
[Column(Order = 8)]
|
||||
public DateTime? Started { get; set; }
|
||||
|
||||
[Column(Order = 9)]
|
||||
public DateTime? Finished { get; set; }
|
||||
|
||||
[Column(Order = 10)]
|
||||
public string? OutputMetadataJson { get; set; }
|
||||
|
||||
public QueueJobModel QueueJob { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user