Beispiel #1
0
        static void MixedHandle()
        {
            var dataPersistence = DataPersistenceFactory.CreateDataPersistence <ShareConfig.DataPersistence.Redis.RedisDataPersistence>("localhost:56379");
            var config          = ConfigFactory.CreateConfig <ConsulConfig>(dataPersistence);

            while (true)
            {
                Console.WriteLine("1、Load Config from data  2、Read Config  3、Synchronize Config  4、Remove Config 5、Exit");
                switch (Console.ReadLine())
                {
                case "1":
                    LoadConfig(dataPersistence, config).GetAwaiter().GetResult();
                    break;

                case "2":
                    ReadConfig(config).GetAwaiter().GetResult();
                    break;

                case "3":
                    SynchronizeConfg(dataPersistence, config).GetAwaiter().GetResult();
                    break;

                case "4":
                    RemoveConfig(dataPersistence, config).GetAwaiter().GetResult();
                    return;

                case "5":
                    return;
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// deletes redis.
        /// </summary>
        static void DeleteRedis()
        {
            var dataPersistence = DataPersistenceFactory.CreateDataPersistence <ShareConfig.DataPersistence.Redis.RedisDataPersistence>("localhost:56379");

            var key = new Key {
                NameSpace = "ns", Environment = "pro", Version = "1.0", Tag = "His"
            };
            var result = dataPersistence.DeleteConfig(key.ToString());

            Console.WriteLine(result);
        }
Beispiel #3
0
        /// <summary>
        /// Read Redis
        /// </summary>
        static void ReadRedis()
        {
            var dataPersistence = DataPersistenceFactory.CreateDataPersistence <ShareConfig.DataPersistence.Redis.RedisDataPersistence>("localhost:56379");
            var result          = dataPersistence.ReadConfigs();

            foreach (var item in result)
            {
                Console.WriteLine($"Key:{item.Key}");
                Console.WriteLine($"Value:{item.Value}");
            }
        }
Beispiel #4
0
        /// <summary>
        /// write redis
        /// </summary>
        static void WriteRedis()
        {
            var dataPersistence = DataPersistenceFactory.CreateDataPersistence <ShareConfig.DataPersistence.Redis.RedisDataPersistence>("localhost:56379");

            var key = new Key {
                NameSpace = "ns", Environment = "pro", Version = "1.0", Tag = "His"
            };
            var value = new { Name = "Gui Suwei", Age = 18, Sex = false };
            var dic   = new Dictionary <string, dynamic>();

            dic.Add(key.ToString(), value);
            var result = dataPersistence.WriteConfigs(dic);

            Console.WriteLine(result);
        }
Beispiel #5
0
        private void Client_OPCClientDataChangeEvent(object source, OPCClientDataChangeEventArgs e)
        {
            if (GlobalConfig.Global.PersistenceType == PersistenceType.Xml)
            {
                OnServiceLog("OPC读取数据不支持XML方式持久化");
                return;
            }

            if (_config == null)
            {
                OnServiceLog("配置信息为空");
                return;
            }

            List <ITag> tags = ConvertTagData(e);

            //CrossServerCache.TagCache.AddOrUpdateRange(tags);

            if (_config.OPCClientPersistence)
            {
                PersistenceType pt = GlobalConfig.Global.PersistenceType;
                if (pt == PersistenceType.CoreRT
                    //|| pt == PersistenceType.Golden
                    || pt == PersistenceType.eDNA)
                {
                    #region 写入实时数据库
                    IDbContext rdb = null;
                    try
                    {
                        rdb = DbContextPool.Pop();
                        if (rdb != null)
                        {
                            string tableName = "SSIOOpc";
                            rdb.WriteTags(tableName, e.TimeStamps, e.ItemNames, e.ItemValues);
                        }
                    }
                    catch (Exception ex)
                    {
                        OnServiceLog(ex.Message);
                    }
                    finally
                    {
                        if (rdb != null)
                        {
                            DbContextPool.Push(rdb);
                        }
                    }

                    OnServiceLog("OPC Client>>写入实时数据库操作完成。共:" + e.NumItems.ToString() + " 数据点。");
                    #endregion
                }
                else if (pt == PersistenceType.MySql ||
                         pt == PersistenceType.Oracle ||
                         pt == PersistenceType.SqlServer ||
                         pt == PersistenceType.Sqlite)
                {
                    #region 写到关系数据库
                    if (_persistence == null)
                    {
                        _persistence = DataPersistenceFactory.CreateDataPersistence(pt);
                    }

                    ((BaseSqlPersistence)_persistence).PersistenceData("", tags);

                    OnServiceLog("OPC Client>>写入关系数据库操作完成。共:" + e.NumItems.ToString() + " 数据点。");
                    #endregion
                }
            }
            else
            {
                string context = "OPC Client>>";
                for (int i = 0; i < e.NumItems; i++)
                {
                    context += String.Format("序号:{0},时间:{1},标签:{2},值:{3};", i.ToString(), e.TimeStamps[i].ToString("yyyy-MM-dd HH:mm:ss"), e.ItemNames[i], e.ItemValues[i].ToString());
                }

                OnServiceLog(context);
            }
        }