private async Task <bool> AttemptDequeue()
        {
            try
            {
                Logger?.LogTrace("Attempting subscription dequeue for type {TYPE}", typeof(T).FullName);
                bool didWork = true;
                await _subscription.RecieveAsync(async item =>
                {
                    ProcessResult result = await ProcessItem(item);
                    didWork = result.DidWork;
                    Logger?.LogTrace("Subscription dequeue result for type {TYPE} of {RESULT}", typeof(T).FullName, result);
                    return(result.Complete);
                });

                return(didWork);
            }
            catch (Exception ex)
            {
                Logger?.LogError("Error occurred {EX} in subscription dequeue in {TYPE}", ex, typeof(T).FullName);
                throw;
            }
        }