private void Send() { if (Sending == false) { if (msg.Count() > 0) { Sending = true; Msg m = msg.Dequeue(); if (m != null) { byte[] buf = m.Serialize_Msg(); if (socket.CheckConnect()) { socket.SendAsync(buf, (ok) => { if (ok) { Sending = false; } }); } else { msg.Enqueue(m); } } } } }//end send
public void Send() { if (msg.Count() > 0) { Msg m = msg.Dequeue(); if (m != null) { byte[] buf = m.Serialize_Msg(); socket.Send(buf); Thread.Sleep(10); } } }
public Task Execute(IJobExecutionContext context) { return(Task.Run(async() => { RawMsg msg = null; int sec = 0; do { msg = _queue.Dequeue(); if (msg == null) { Thread.Sleep(TimeSpan.FromSeconds(1)); sec++; } } while (msg == null && sec < 60); if (msg != null) { using (var _dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>()) { var device = _dbContext.Device.FirstOrDefault(d => d.Id == msg.DeviceId); if (device != null) { switch (msg.DataCatalog) { case DataCatalog.AttributeData: var result2 = await _dbContext.SaveAsync <AttributeLatest>(msg.MsgBody, device.Id, msg.DataSide); result2.exceptions?.ToList().ForEach(ex => { _logger.LogError($"{ex.Key} {ex.Value} {Newtonsoft.Json.JsonConvert.SerializeObject(msg.MsgBody[ex.Key])}"); }); _logger.LogInformation($"更新{device.Name}({device.Id})属性数据结果{result2.ret}"); break; case DataCatalog.TelemetryData: bool sta = await _storage.StoreTelemetryAsync(msg); _logger.LogInformation($"新增{device.Name}({device.Id})遥测数据{sta}"); break; default: break; } } } } })); }
public Task Execute(IJobExecutionContext context) { return(Task.Run(async() => { var msg = _queue.Dequeue(); if (msg != null) { using (var _dbContext = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>()) { var device = _dbContext.Device.FirstOrDefault(d => d.Id == msg.DeviceId); if (device != null) { switch (msg.DataCatalog) { case DataCatalog.AttributeData: var result2 = await _dbContext.SaveAsync <AttributeLatest, AttributeData>(msg.MsgBody, device, msg.DataSide); if (result2.exceptions?.Count > 0) { _logger.LogError(Newtonsoft.Json.JsonConvert.SerializeObject(msg.MsgBody)); } _logger.LogInformation(Newtonsoft.Json.JsonConvert.SerializeObject(result2)); break; case DataCatalog.TelemetryData: var result1 = await _dbContext.SaveAsync <TelemetryLatest, TelemetryData>(msg.MsgBody, device, msg.DataSide); if (result1.exceptions?.Count > 0) { _logger.LogError(Newtonsoft.Json.JsonConvert.SerializeObject(msg.MsgBody)); } _logger.LogInformation(Newtonsoft.Json.JsonConvert.SerializeObject(result1)); break; default: break; } } } } })); }