public UserPasswordBatch NextBatch(string actorPath) { var nextBatchId = BatchesToProcess.Dequeue(); var nextBatch = PasswordBatches.First(b => b.BatchId == nextBatchId); BatchesInProgess.Add(nextBatchId, actorPath); return(nextBatch); }
public void BatchFailed(string actorPath) { var inProgress = BatchesInProgess .Where(bd => bd.Value == actorPath) .Select(b => b.Key) .ToList(); if (!inProgress.Any()) { return; } foreach (var batchId in inProgress) { BatchesInProgess.Remove(batchId); BatchesToProcess.Enqueue(batchId); } }
public void CompleteBatch(BatchFinished batch) { BatchesInProgess.Remove(batch.BatchId); ProcessedPasswords.AddRange(batch.NewPasswords); }