protected override void ProcessRecord() { base.ProcessRecord(); UpdateBackendRequest request; try { request = new UpdateBackendRequest { NetworkLoadBalancerId = NetworkLoadBalancerId, UpdateBackendDetails = UpdateBackendDetails, BackendSetName = BackendSetName, BackendName = BackendName, OpcRequestId = OpcRequestId, OpcRetryToken = OpcRetryToken, IfMatch = IfMatch }; response = client.UpdateBackend(request).GetAwaiter().GetResult(); WriteOutput(response, CreateWorkRequestObject(response.OpcWorkRequestId)); FinishProcessing(response); } catch (Exception ex) { TerminatingErrorDuringExecution(ex); } }
public override Task <Null> UpdateBackend(UpdateBackendRequest request, ServerCallContext context) { logger.LogInformation($"Updating SessionManager {remoteConfig.SessionManagerAddress} to {request.SessionManagerAddress} "); if (remoteConfig.SessionManagerAddress == request.SessionManagerAddress) // ServerManager 가 복구된 경우 ServerManager 가 SessionServer 의 정보를 알수가 없어 UpdateBackend 를 보낼 수 있다. { return(Task.FromResult(new Null())); } remoteConfig.SessionManagerAddress = request.SessionManagerAddress; if (string.IsNullOrEmpty(request.SessionManagerAddress) == false && // SessionManager 복구된 경우 localConfig.HasPushService) // Push service 에서 { // SessionManager 와 user 동기화 var client = clients.GetClient <SessionManager.SessionManagerClient>(request.SessionManagerAddress); Frontend.PushService.Pusher.SyncUsersToSessionManager(client, remoteConfig.BackendListeningAddress, headers, logger); } return(Task.FromResult(new Null())); }
private void BroadcastUpdateBackend() { List <Server> targets; lock (servers) targets = servers.ToList(); var req = new UpdateBackendRequest { SessionManagerAddress = sessionManagerAddress }; foreach (var t in targets) { try { var c = clients.GetClient <ServerHost.ServerHostClient>(t.BackendListeningAddress); c.UpdateBackendAsync(req, headers: header); } catch (RpcException ex) { logger.LogWarning($"Error on UpdateBackend of {t.ServerId} : {ex.Message}"); } } }
/// <summary> /// 修改一个后端服务的信息 /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public async Task <UpdateBackendResponse> UpdateBackend(UpdateBackendRequest request) { return(await new UpdateBackendExecutor().Client(this).Execute <UpdateBackendResponse, UpdateBackendResult, UpdateBackendRequest>(request).ConfigureAwait(false)); }
/// <summary> /// 修改一个后端服务的信息 /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public UpdateBackendResponse UpdateBackend(UpdateBackendRequest request) { return(new UpdateBackendExecutor().Client(this).Execute <UpdateBackendResponse, UpdateBackendResult, UpdateBackendRequest>(request)); }