Пример #1
0
 /// <summary>
 /// Performs a cache lookup for the process on the worker
 /// </summary>
 public virtual Task <(RunnableFromCacheResult, PipResultStatus)> CacheLookupAsync(
     ProcessRunnablePip runnablePip,
     PipExecutionState.PipScopeState state,
     CacheableProcess cacheableProcess)
 {
     Contract.Requires(runnablePip.Step == PipExecutionStep.CacheLookup);
     throw Contract.AssertFailure(I($"CacheLookupAsync is not supported for worker {Name}"));
 }
Пример #2
0
 /// <inheritdoc />
 public override async Task <RunnableFromCacheResult> CacheLookupAsync(
     ProcessRunnablePip runnablePip,
     PipExecutionState.PipScopeState state,
     CacheableProcess cacheableProcess)
 {
     using (OnPipExecutionStarted(runnablePip))
     {
         return(await PipExecutor.TryCheckProcessRunnableFromCacheAsync(runnablePip, state, cacheableProcess));
     }
 }
Пример #3
0
        /// <inheritdoc />
        public override async Task <(RunnableFromCacheResult, PipResultStatus)> CacheLookupAsync(
            ProcessRunnablePip runnablePip,
            PipExecutionState.PipScopeState state,
            CacheableProcess cacheableProcess)
        {
            using (OnPipExecutionStarted(runnablePip))
            {
                var cacheResult = await PipExecutor.TryCheckProcessRunnableFromCacheAsync(runnablePip, state, cacheableProcess);

                return(ValueTuple.Create(cacheResult, cacheResult == null ? PipResultStatus.Failed : PipResultStatus.Succeeded));
            }
        }
Пример #4
0
        /// <inheritdoc />
        public override async Task <RunnableFromCacheResult> CacheLookupAsync(
            ProcessRunnablePip runnablePip,
            PipExecutionState.PipScopeState state,
            CacheableProcess cacheableProcess)
        {
            ExecutionResult result = await ExecutePipRemotely(runnablePip);

            if (result.Result.IndicatesFailure())
            {
                return(null);
            }

            return(PipExecutor.TryConvertToRunnableFromCacheResult(
                       runnablePip.OperationContext,
                       runnablePip.Environment,
                       state,
                       cacheableProcess,
                       result));
        }