refactor(jobs): modularize background job handlers
Some checks failed
ci / release-gate (push) Has been cancelled

This commit is contained in:
2026-08-03 13:28:21 +08:00
parent c497a3ca8d
commit 7adcb6a3d5
21 changed files with 871 additions and 645 deletions

View File

@@ -103,11 +103,29 @@ public sealed record BackgroundJobExecutionContext(
string JobType,
JsonElement Payload);
public sealed record BackgroundJobHandlerResult(
JsonElement Result,
Guid? OutputAssetId = null);
public sealed class BackgroundJobHandlerException(string code, string message, Exception? innerException = null)
: Exception(message, innerException)
{
public string Code { get; } = code;
}
public interface IBackgroundJobHandler
{
string JobType { get; }
Task<JsonElement> HandleAsync(
Task<BackgroundJobHandlerResult> HandleAsync(
BackgroundJobExecutionContext context,
CancellationToken cancellationToken = default);
}
Task HandleFailureAsync(
BackgroundJobExecutionContext context,
Exception exception,
CancellationToken cancellationToken = default)
{
return Task.CompletedTask;
}
}