private void EnterPipeline()
 {
     if (Interlocked.CompareExchange(ref _pipelineMode, 1, 0) == 0)
     {
         _pipeline = _client.CreatePipeline();
     }
 }
示例#2
0
 private void UploadToCloud()
 {
     while (CloudDB > -1 && _LocalDB > -1)
     {
         try
         {
             using (ServiceStack.Redis.RedisClient client = getClient())
             {
                 if (!client.Ping())
                 {
                     continue;
                 }
                 client.Db = CloudDB;
                 if (client.Exists("Machine") == 0)
                 {
                     RegisterConfigure(client);
                 }
                 ServiceStack.Redis.RedisClient localclient = new ServiceStack.Redis.RedisClient("127.0.0.1", 6379);
                 localclient.Db = LocalDB;
                 if (localclient.Exists("Machine") == 0)
                 {
                     RegisterConfigure(localclient);
                 }
                 if (localclient.LLen("SampleData") > 99)
                 {
                     List <String> listData = localclient.GetRangeFromList("SampleData", 0, 99);
                     using (var trans = client.CreatePipeline())              //Calls 'MULTI'
                     {
                         for (int i = 0; i < listData.Count; i++)
                         {
                             trans.QueueCommand(r => r.AddItemToList("SampleData", listData[i]));
                         }
                         trans.Flush();
                     }
                     localclient.LTrim("SampleData", listData.Count, -1);
                 }
                 UploudGCodeToCloud(client, localclient);
             }
         }
         catch (Exception ex)
         {
             Console.WriteLine("Upload to cloud:" + ex.Message);
         }
         System.Threading.Thread.Sleep(10);
     }
 }
示例#3
0
        private void UploudGCodeToCloud(ServiceStack.Redis.RedisClient client, ServiceStack.Redis.RedisClient localclient)
        {
            List <String> GCodeFiles = localclient.SearchKeys("GCODE:*");

            if (GCodeFiles != null)
            {
                for (int i = 0; i < GCodeFiles.Count; i++)
                {
                    List <String> listData = localclient.GetRangeFromList(GCodeFiles[i], 0, -1);
                    localclient.Remove(GCodeFiles[i]);
                    client.Remove(GCodeFiles[i]);
                    using (var trans = client.CreatePipeline())              //Calls 'MULTI'
                    {
                        for (int j = 0; j < listData.Count; j++)
                        {
                            trans.QueueCommand(r => r.AddItemToList(GCodeFiles[i], listData[j]));
                        }
                        trans.Flush();
                    }
                }
            }
        }