public StatusCodeResult Post([FromBody] RootObject rootObject) { //_telemetryClient.TrackTrace(rootObject.DateTime + ":" + rootObject.CountryCode); List <string> tList = new List <string>(); foreach (Accident i in rootObject.Accidents) { var guid = Guid.NewGuid().ToString(); i.TransactionId = guid; tList.Add(guid); } try { using (var kafkaClient = new MyKafkaProducer(brokerList, topic)) { var jstr = JsonConvert.SerializeObject(rootObject); //_telemetryClient.TrackTrace(jstr); _logger.LogInformation(jstr); kafkaClient.produce(jstr); //_logger.LogInformation($"Delivered at '{deliveryLog.topicTimeStamp}' to topic '{deliveryLog.topic}' offset '{deliveryLog.offset}'"); } } catch (Exception ex) { _logger.LogError(ex.InnerException.Message); return(StatusCode(500)); } return(StatusCode(200)); }
public async Task <StatusCodeResult> Post([FromBody] RootObject rootObject) { //_telemetryClient.TrackTrace(rootObject.DateTime + ":" + rootObject.CountryCode); List <string> tList = new List <string>(); foreach (Accident i in rootObject.Accidents) { var guid = Guid.NewGuid().ToString(); i.TransactionId = guid; tList.Add(guid); } CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); try { using (var kafkaClient = new MyKafkaProducer(brokerList, topic)) { var jstr = JsonConvert.SerializeObject(rootObject); //_telemetryClient.TrackTrace(jstr); //_logger.LogInformation(jstr); //var dr = await kafkaClient.produceAsyncWithConnection(brokerList, topic, jstr); // 3sec待機してタスクをキャンセル cancellationTokenSource.CancelAfter(3000); var dr = await kafkaClient.produceAsync(jstr, cancellationTokenSource.Token); _logger.LogInformation($"Delivered at '{dr.topicTimeStamp}' to topic '{dr.topic}' offset '{dr.offset}'"); } } catch (Exception ex) { //_logger.LogError(ex.Message); _logger.LogError(ex.StackTrace); return(StatusCode(500)); } return(StatusCode(200)); }