Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }