Fix campaign steps

This commit is contained in:
2025-11-01 20:13:20 +09:00
parent 3c3510a8f9
commit e7f646c408
4 changed files with 41 additions and 8 deletions

View File

@ -5,21 +5,32 @@ namespace Hcs.WebApp.BackgroundServices
{
public class ResultWaitState
{
private readonly ConcurrentQueue<Operation> operations = new();
private readonly ConcurrentQueue<Operation> operationsInQueue = new();
private readonly HashSet<Operation> operationsInProcess = [];
public void EnqueueOperation(Operation operation)
{
operations.Enqueue(operation);
operationsInQueue.Enqueue(operation);
}
public bool TryDequeueOperation(out Operation operation)
{
return operations.TryDequeue(out operation);
return operationsInQueue.TryDequeue(out operation);
}
public void SetProcessingOperation(Operation operation)
{
operationsInProcess.Add(operation);
}
public void UnsetProcessingOperation(Operation operation)
{
operationsInProcess.Remove(operation);
}
public bool HasCampaignOperation(int campaignId)
{
return operations.Any(x => x.CampaignId == campaignId);
return operationsInProcess.Any(x => x.CampaignId == campaignId);
}
}
}