public RowSet InsertTagDataCentral(SignalsInfo signal) { try { var insertBS = cassandraSessionMgr. centralPreparedStmt.Bind(signal.ID, Convert.ToInt32(signal.MYear), signal.FTime, signal.TTime, signal.Max, signal.Min, signal.Avg, signal.Data, signal.CTime); if (ConnectionState) { return(cassandraSessionMgr.currentSession.Execute(insertBS)); } else { cassandraSessionMgr.StopCassandraSession(); return(null); } } catch (Cassandra.NoHostAvailableException ex) { cassandraSessionMgr.StopCassandraSession(); log.Error("M:- InsertTagDataCentral | V:- cassandra db no host available | Ex:- ", ex); return(null); } catch (Exception ex) { log.Error("M:- InsertTagDataCentral | V:- error while inserting central records | Ex:- ", ex); return(null); } }
public void InsertTagDataFailed(SignalsInfo signal) { try { var insertBS = cassandraSessionMgr. failedPreparedStmt.Bind(signal.ID, Convert.ToInt32(signal.MYear), signal.FTime, signal.TTime, signal.Avg, signal.Max, signal.Min, signal.Data, signal.CTime); if (ConnectionState) { cassandraSessionMgr.currentSession.Execute(insertBS); } else { cassandraSessionMgr.StopCassandraSession(); throw new Exception("M:-InsertTagDataFailed | V:- Cassandra Session Down"); } } catch (Cassandra.NoHostAvailableException ex) { cassandraSessionMgr.StopCassandraSession(); log.Error("M:- InsertTagDataFailed | V:- cassandra db no host available | Ex:- ", ex); } catch (Exception ex) { log.Error("M:- InsertTagDataFailed | V:- error while inserting failed records | Ex:- ", ex); } }
public void AddSignal(SignalsInfo signal) { if (_currentIndex >= bufferSize) { System.Threading.Thread.Sleep(Program.BufferDelayForSending); OnBufferLimitReached?.Invoke(_buffer); _buffer = new SignalsInfo[bufferSize]; _currentIndex = 0; } _buffer[_currentIndex++] = signal; }
public bool RemoveFailedTagData(SignalsInfo signal) { RowSet rs = null; try { BoundStatement insertBS = cassandraSessionMgr.deletePreparedStmt.Bind(signal.ID, Convert.ToInt32(signal.MYear), signal.FTime); if (ConnectionState) { rs = cassandraSessionMgr.currentSession.Execute(insertBS); } else { cassandraSessionMgr.StopCassandraSession(); throw new Exception("M:- RemoveFailedTagData | V:- Cassandra Session Down"); } } catch (Cassandra.NoHostAvailableException ex) { cassandraSessionMgr.StopCassandraSession(); log.Error("M:- RemoveFailedTagData | V:- cassandra db no host available | Ex:- ", ex); return(false); } catch (Exception ex) { log.Error("M:- RemoveFailedTagData | V:- error deleting batch [failed data] | Ex:- ", ex); return(false); } if (rs != null) { return(true); } else { return(false); } }
static void Main(string[] args) { try { SocketOptions options = new SocketOptions(); options.SetConnectTimeoutMillis(int.MaxValue); options.SetReadTimeoutMillis(int.MaxValue); options.SetTcpNoDelay(true); centralUrl = string.Format("http://{0}", centralUrl); if (cassandraUserName != null && cassandraUserName.Length > 0 && cassandraPassword != null && cassandraPassword.Length > 0) { cluster = Cluster.Builder().AddContactPoints(new string[] { cassandraIp }) .WithPort(cassandraPort) .WithCredentials(cassandraUserName, cassandraPassword) .WithSocketOptions(options) .WithQueryTimeout(int.MaxValue).Build(); } else { cluster = Cluster.Builder().AddContactPoints(new string[] { cassandraIp }) .WithPort(cassandraPort) .WithSocketOptions(options) .WithQueryTimeout(int.MaxValue) .Build(); } currentSession = cluster.Connect("vegamtagdata"); string currentSignalId = ""; int currentItemCount = 0; StringBuilder cqlCommandBuilder = new StringBuilder(); cqlCommandBuilder.Append(" select signalid, monthyear, fromtime, totime, avg, max, min, readings, insertdate "); cqlCommandBuilder.Append(" from tagdatacentral where signalid = #signalid and monthyear in (#monthyear) and fromtime > #starttime and fromtime < #endtime"); string cqlCommand = cqlCommandBuilder.ToString(); signalsBuffer.OnBufferLimitReached += On_BufferLimitReached; IEnumerable <string> signalIdList = File.ReadLines(signalIdListFile); SignalsInfo currentSignal; foreach (var line in signalIdList) { if (string.IsNullOrWhiteSpace(line)) { continue; } string[] items = line.Split(','); currentSignalId = items[0]; long.TryParse(items[2], out long FromTime); long.TryParse(items[3], out long SyncEndTime); currentItemCount = 0; var currentCommand = cqlCommand.Replace("#signalid", items[0]); currentCommand = currentCommand.Replace("#monthyear", GetMonthYearBetween(FromTime, SyncEndTime)); currentCommand = currentCommand.Replace("#starttime", FromTime.ToString()); currentCommand = currentCommand.Replace("#endtime", SyncEndTime.ToString()); try { var resultRowSet = currentSession.Execute(currentCommand); foreach (var row in resultRowSet) { currentSignal = new SignalsInfo(); currentSignal.ID = Convert.ToInt32(row["signalid"]); currentSignal.MYear = row["monthyear"].ToString(); currentSignal.FTime = Convert.ToInt64(row["fromtime"]); currentSignal.TTime = Convert.ToInt64(row["totime"]); currentSignal.Avg = Convert.ToDecimal(row["avg"]); currentSignal.Max = Convert.ToDecimal(row["max"]); currentSignal.Min = Convert.ToDecimal(row["min"]); currentSignal.Data = row["readings"].ToString(); currentSignal.CTime = Convert.ToInt64(row["insertdate"]); currentItemCount++; signalsBuffer.AddSignal(currentSignal); } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine("Completed pushing data for signalId " + currentSignalId + " with count: " + currentItemCount); File.AppendAllText(SuccessFile, currentSignalId + Environment.NewLine); } signalsBuffer.FlushData(); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); } }