/// <summary> /// /// </summary> /// <param name="message"></param> /// <returns></returns> private async Task <bool> GracefulStop(GracefulStopMessge message) { bool result = false; logger.Warning(message.Reason); if (BoostGraphs.TryGetValue(message.Hash.ToHex(), out IActorRef actorRef)) { result = await actorRef.GracefulStop(message.TimeSpan); if (result) { BoostGraphs.Remove(message.Hash.ToHex()); } } return(result); }
/// <summary> /// /// </summary> /// <param name="messge"></param> /// <returns></returns> public async Task <bool> GracefulStop(GracefulStopMessge messge) { if (messge == null) { throw new ArgumentNullException(nameof(messge)); } if (messge.Hash == null) { throw new ArgumentNullException(nameof(messge.Hash)); } if (messge.Hash.Length > 32) { throw new ArgumentOutOfRangeException(nameof(messge.Hash)); } if (string.IsNullOrEmpty(messge.Reason)) { throw new ArgumentNullException(nameof(messge.Reason)); } if (messge.TimeSpan == TimeSpan.Zero) { throw new ArgumentNullException(nameof(messge.Hash)); } bool result = false; try { result = await actor.Ask <bool>(messge); } catch (Exception ex) { logger.LogError($"<<< SupervisorActorProvider.GracefulStop >>>: {ex.ToString()}"); } return(result); }