public async Task CallOtherLongRunningTaskWithLocalToken(ILongRunningTaskGrain <T> target, TimeSpan delay, TimeSpan delayBeforeCancel) { var tcs = new GrainCancellationTokenSource(); var task = target.LongWait(tcs.Token, delay); await Task.Delay(delayBeforeCancel); await tcs.Cancel(); await task; }
public async Task <bool> CallOtherCancellationTokenCallbackResolve(ILongRunningTaskGrain <T> target) { var tc = new GrainCancellationTokenSource(); var grainTask = target.CancellationTokenCallbackResolve(tc.Token); await Task.Delay(300); await tc.Cancel(); return(await grainTask); }
public async Task <T> FanOutOtherLongRunningTask(ILongRunningTaskGrain <T> target, T t, TimeSpan delay, int degreeOfParallelism) { var promises = Enumerable .Range(0, degreeOfParallelism) .Select(_ => target.LongRunningTask(t, delay)) .ToList(); await Task.WhenAll(promises); return(t); }
public async Task <T> CallOtherLongRunningTask(ILongRunningTaskGrain <T> target, T t, TimeSpan delay) { return(await target.LongRunningTask(t, delay)); }
public async Task CallOtherLongRunningTask(ILongRunningTaskGrain <T> target, GrainCancellationToken tc, TimeSpan delay) { await target.LongWait(tc, delay); }