示例#1
0
 //将byte[]写入redis缓存
 public static void WriteRedis(string key, byte[] bytes)
 {
     Task.Run(() =>
     {
         SeRedisHelper.StringSet(key, Convert.ToBase64String(bytes));
     });
 }
示例#2
0
 private void WriteRedis()
 {
     while (redislist.Count > 0)
     {
         try
         {
             RedisQueue redisinfo = redislist.Dequeue();
             Task.Run(() =>
             {
                 SeRedisHelper.StringSet(redisinfo.key, Convert.ToBase64String(redisinfo.bytes));
             });
         }
         catch (Exception e)
         {
             Log4Helper.WriteLog(e.ToString());
         }
     }
 }
示例#3
0
        //删除切片
        public static bool DeleteFile(string maptype, string x, string y, string z)
        {
            string fullfilepath = Folderpath + CreateFolder(maptype) + z + "\\" + x + "\\" + y + JsonHelper.GetValueByKey(maptype).suffix;;
            string rediskey     = maptype + "-" + JsonHelper.GetValueByKey(maptype).version + "-" + z + "-" + x + "-" + y;

            try
            {
                if (SeRedisHelper.HasKey(rediskey))
                {
                    SeRedisHelper.KeyDelete(rediskey);
                }
                if (File.Exists(fullfilepath))
                {
                    File.Delete(fullfilepath);
                }
                return(true);
            }
            catch (Exception e)
            {
                Log4Helper.WriteLog("删除缓存失败!");
                Log4Helper.WriteLog(e);
                return(false);
            }
        }
示例#4
0
        /// <summary>
        /// 带缓存功能的地图服务
        /// </summary>
        /// <param name="maptype">地图类型</param>
        /// <param name="x">行号</param>
        /// <param name="y">列号</param>
        /// <param name="z">地图等级</param>
        /// <returns></returns>
        public async Task <Stream> GeteMapService(string maptype, string x, string y, string z)
        {
            if (string.IsNullOrEmpty(maptype))
            {
                maptype = Defaultmaptype;
            }
            string key    = maptype + "-" + JsonHelper.GetValueByKey(maptype).version + "-" + z + "-" + x + "-" + y;
            string base64 = (await SeRedisHelper.GetAsync(key)).ToString();

            if (!string.IsNullOrEmpty(base64))
            {
                try
                {
                    byte[] bytes = Convert.FromBase64String(base64);
                    Stream strem = new MemoryStream(bytes);
                    WriteFileHelper.AddList("redsuc");
                    return(strem);
                }
                catch (Exception e)
                {
                    string base404 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX8+fKNaX6qAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAH0lEQVRo3u3BAQ0AAADCoPdPbQ43oAAAAAAAAAAAvg0hAAABfxmcpwAAAABJRU5ErkJggg==";
                    WriteFileHelper.AddList("rederr");
                    Log4Helper.WriteLog("redis读取错误!");
                    Log4Helper.WriteLog(e);
                    byte[] bytes = Convert.FromBase64String(base404);
                    Stream strem = new MemoryStream(bytes);
                    return(strem);
                }
            }
            else
            {
                string        filepath   = GetMapDir(maptype, x, y, z);
                string        folderpath = CreateMapDir(maptype, x, y, z);
                DirectoryInfo dir        = new DirectoryInfo(folderpath);
                if (!dir.Exists)
                {
                    try
                    {
                        dir.Create();
                    }
                    catch (Exception e)
                    {
                        Log4Helper.WriteLog("文件夹创建失败!");
                        Log4Helper.WriteLog(e);
                    }
                }
                if (File.Exists(filepath))
                {
                    try
                    {
                        FileStream fs = new FileStream(filepath, FileMode.Open,
                                                       FileAccess.Read, FileShare.Read);
                        WriteFileHelper.AddList("folsuc");
                        return(fs);
                    }
                    catch (Exception e)
                    {
                        string base404 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX8+fKNaX6qAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAH0lEQVRo3u3BAQ0AAADCoPdPbQ43oAAAAAAAAAAAvg0hAAABfxmcpwAAAABJRU5ErkJggg==";

                        Log4Helper.WriteLog("文件夹读取失败!");
                        Log4Helper.WriteLog(e);
                        byte[] bytes = Convert.FromBase64String(base404);
                        Stream strem = new MemoryStream(bytes);
                        WriteFileHelper.AddList("folerr");
                        return(strem);
                    }
                }
                else
                {
                    string         url     = GetMapUrl(maptype, x, y, z);
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.Timeout   = 60000;
                    request.KeepAlive = false;
                    request.Method    = "GET";
                    request.ServicePoint.ConnectionLimit = 512;
                    request.UserAgent         = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)"; //
                    request.AllowAutoRedirect = true;                                                                    //是否允许302
                    HttpWebResponse response = null;
                    Stream          stream   = null;
                    try
                    {
                        response = request.GetResponse() as HttpWebResponse;
                        stream   = response.GetResponseStream();
                        byte[] bytes = StreamToBytes(stream);
                        WriteFileHelper.AddQueue(maptype, x, y, z, bytes);
                        WriteFileHelper.AddList("websuc");
                        Stream str = new MemoryStream(bytes);
                        return(str);
                    }
                    catch (Exception e)
                    {
                        string base404 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX8+fKNaX6qAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAH0lEQVRo3u3BAQ0AAADCoPdPbQ43oAAAAAAAAAAAvg0hAAABfxmcpwAAAABJRU5ErkJggg==";

                        Log4Helper.WriteLog("网络请求失败!");
                        Log4Helper.WriteLog(e);
                        byte[] bytes = Convert.FromBase64String(base404);
                        Stream strem = new MemoryStream(bytes);
                        WriteFileHelper.AddList("weberr");
                        return(strem);
                    }
                    finally
                    {
                        request.Abort();
                        if (response != null)
                        {
                            response.Close();
                        }
                        if (stream != null)
                        {
                            stream.Close();
                        }
                    }
                }
            }
        }