ParadoxSaveParser/ParadoxSaveParser.WebAPI/BackgroundTasks/BackgroundJobManager.cs
2025-04-10 15:42:39 +05:00

24 lines
761 B
C#

using ParadoxSaveParser.WebAPI.SaveDataFilters;
namespace ParadoxSaveParser.WebAPI.BackgroundTasks;
public class BackgroundJobManager
{
private readonly ILogger _parentLogger;
private long _lastJobId;
public BackgroundJobManager(ILogger logger)
{
_parentLogger = logger;
}
public SaveParsingOperation StartNewParsingOperation(
SaveFileMetadata meta, ISaveDataFilter filter, CancellationToken ct)
{
long nextId = Interlocked.Increment(ref _lastJobId);
var contextLogger = new ContextLogger($"BackgroundJob-{nextId}", _parentLogger);
var op = new SaveParsingOperation(nextId, meta, filter, contextLogger, ct);
op.StartAsync();
return op;
}
}