public async Task <long> PushAsync(ServerPushData data) { var timer = new Stopwatch(); timer.Start(); await InternalPushDataAsync(data); timer.Stop(); return(timer.ElapsedMilliseconds); }
public async Task PushAsync(ServerPushData data) { DateTime now = DateTime.UtcNow; if (data == null) { return; } var serverInfo = _servers.AddOrUpdate(data.Server.Id, i => data.Server, (i, u) => data.Server); serverInfo.LastPush = now; await _serversData.GetOrAdd(data.Server.Id, hash => new InMemoryServerData()).InternalPush(data.Items); }
public override async Task InternalPushDataAsync(ServerPushData data) { var request = (HttpWebRequest)WebRequest.Create(_host + "/monitoring/push"); request.Method = "POST"; request.ContentType = "application/json; charset=UTF-8"; request.Accept = "application/json"; var jsonData = GetObjectJson(data); request.ContentLength = jsonData.Length; using (var requestStream = await request.GetRequestStreamAsync()) { byte[] postBytes = Encoding.UTF8.GetBytes(jsonData); requestStream.Write(postBytes, 0, postBytes.Length); requestStream.Close(); } await request.GetResponseAsync(); }
private static string GetObjectJson(ServerPushData data) { return(new JavaScriptSerializer().Serialize(data)); }
public async Task <IActionResult> Push([FromBody] ServerPushData data) { await _monitoringStorage.PushAsync(data); return(Ok()); }
public abstract Task InternalPushDataAsync(ServerPushData data);