Example #1
0
        protected virtual async Task OnCompletedAsync(string id)
        {
            var queueEntry = await _queueEntryCache.GetAsync <QueueEntryMetadata>(id).AnyContext();

            if (queueEntry.HasValue && queueEntry.Value.DequeuedTimeUtc > DateTime.MinValue)
            {
                queueEntry.Value.ProcessingTime = DateTime.UtcNow.Subtract(queueEntry.Value.DequeuedTimeUtc);
            }

            await(Completed?.InvokeAsync(this, new CompletedEventArgs <T> {
                Queue    = this,
                Metadata = queueEntry.Value
            }) ?? TaskHelper.Completed()).AnyContext();

            await _queueEntryCache.RemoveAsync(id).AnyContext();
        }