public virtual async Task<InvocationState> Dequeue(TimeSpan invisibleFor, CancellationToken token) { var invisibleUntil = _clock.UtcNow + invisibleFor; var row = await ConnectAndExec( "work.DequeueInvocation", new { InstanceName = InstanceName, HideUntil = invisibleUntil.UtcDateTime }); if (row == null) { return null; } else { return new InvocationState(row); } }