Add XML documentation for improved code clarity
Added detailed XML documentation across multiple files to enhance code maintainability and readability. Key updates include: - Documented `AllowAllDashboardAuthorizationFilter` to clarify its development-only usage. - Added comments to `DtoExtensions` for Hangfire job ID generation and DTO-to-command conversion methods. - Enhanced `HealthCheckHtmlGenerator` with detailed descriptions of HTML generation methods and utility functions. - Documented `DependencyInjection` and `ProfileWorkerOptionsValidator` to explain service registration and configuration validation. - Updated `ProfileCache` with comments on thread-safe operations. - Added documentation to `ProfileWork` for profile synchronization logic and execution flow. - Enhanced `ProfileWorker` with health check logic and background service execution details. - Documented `ProfileWorkerOptions` configuration properties. These changes aim to improve developer understanding and ensure best practices are followed in production environments.
This commit is contained in:
@@ -5,9 +5,31 @@ using MediatR;
|
||||
|
||||
namespace ECMJobRunner.WebCron.ProfileWorker;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Handles the core business logic for synchronizing profiles between the database and Hangfire.
|
||||
/// Responsible for adding, updating, and removing recurring jobs based on profile configuration.
|
||||
/// </summary>
|
||||
/// <param name="Logger">Logger for diagnostic output.</param>
|
||||
/// <param name="JobManager">Hangfire recurring job manager.</param>
|
||||
/// <param name="Mediator">MediatR mediator for executing commands and queries.</param>
|
||||
/// <param name="ProfileCache">Thread-safe cache for tracking profile state.</param>
|
||||
public class ProfileWork(ILogger<ProfileWork> Logger, IRecurringJobManager JobManager, IMediator Mediator, ProfileCache ProfileCache)
|
||||
{
|
||||
/// <summary>
|
||||
/// Synchronizes active profiles from the database with Hangfire recurring jobs.
|
||||
/// </summary>
|
||||
/// <param name="stoppingToken">Cancellation token for graceful shutdown.</param>
|
||||
/// <remarks>
|
||||
/// Execution flow:
|
||||
/// <list type="number">
|
||||
/// <item><description>Fetches active profiles from database via MediatR query</description></item>
|
||||
/// <item><description>Removes jobs from Hangfire that no longer exist in the database</description></item>
|
||||
/// <item><description>Adds or updates jobs with changed schedules</description></item>
|
||||
/// <item><description>Updates local cache to reflect current state</description></item>
|
||||
/// </list>
|
||||
/// Uses HashSet for O(1) job existence checks to optimize performance.
|
||||
/// </remarks>
|
||||
/// <returns>A task representing the asynchronous synchronization operation.</returns>
|
||||
public async Task ExecuteAsync(CancellationToken stoppingToken)
|
||||
{
|
||||
// Fetch active profiles from database
|
||||
|
||||
Reference in New Issue
Block a user