public RES GetTask(string keyName, string taskId)
        {
            var listName = $"Stock:Task:{keyName}:{taskId}";

            var res  = REDIS.Current.GetListLastItems(listName, -1000);
            var list = res.DATA as List <string>;

            if (null != list)
            {
                var res4     = RES.FAIL("尚未进行任务分配");
                var hasFound = false;
                list.ForEach(p =>
                {
                    if (!hasFound)
                    {
                        var res2 = this.IsExistTaskStatus(listName, JSON.ToJson(JSON.ToObject <Dictionary <string, object> >(p)));
                        if (!res2.SUCCESS)
                        {
                            var res3 = this.SaveTaskStatus(listName, p);
                            hasFound = true;
                            res4     = RES.OK(p);
                        }
                    }
                });
                return(res4);
            }
            return(RES.FAIL($"{listName} 为空"));
        }
        public RES QueryList(string filter)
        {
            try
            {
                var checkRes = this.CheckBeforeQueryList(filter);
                if (!checkRes.SUCCESS)
                {
                    return(checkRes);
                }

                var queryFilter = checkRes.DATA as QueryFilter;

                var res  = RedisDB.Current.QueryList <Document>(queryFilter.ToDictionary());
                var list = res.DATA as List <Document>;
                list.ForEach(p =>
                {
                    p.Detail = null;
                });
                return(RES.OK(list));
            }
            catch (Exception ex)
            {
                return(RES.FAIL(ex));
            }
        }
        static void Main(string[] args)
        {
            HttpServer.GetInst("http://127.0.0.1:9090/cache/").Run((req) => {
                var res = RES.FAIL("尚未进行任何处理");
                try
                {
                    var buffer = req.DATA as byte[];
                    if (0 < buffer.Length)
                    {
                        var jsonString = Encoding.UTF8.GetString(buffer);
                        var jquest     = JRequest.Parse(jsonString);
                        if (jquest.Method == "Execute")
                        {
                            var serverId = jquest.Param[0];
                            var command  = jquest.Param[1];
                            var paramArr = jquest.Param.ToList().Skip(2).Take(jquest.Param.Length - 2).ToArray();
                            var resExe   = REDIS.GetInst("127.0.0.1", 7379).Execute(serverId, command, paramArr);
                            return(RES.OK(resExe, ENUM.数据类型.ByteArray));
                        }
                    }

                    return(res);
                }
                catch (Exception ex)
                {
                    return(RES.FAIL(ex, ENUM.数据类型.ByteArray));
                }
                finally
                {
                }
            });
            Console.WriteLine("Hello World!");
            Console.ReadKey();
        }
Beispiel #4
0
        public RES GetTree <T>(string filter, Action <T> callback = null) where T : Category, new()
        {
            try
            {
                var checkRes = this.CheckBeforeQueryList(filter);
                if (!checkRes.SUCCESS)
                {
                    return(checkRes);
                }

                var queryFilter = checkRes.DATA as QueryFilter;

                var res  = RedisDB.Current.QueryList <T>(queryFilter.ToDictionary());
                var list = res.DATA as List <T>;
                if (null != list && null != callback)
                {
                    list.ForEach(p => {
                        callback(p);
                    });
                }
                return(RES.OK(list));
            }
            catch (Exception ex)
            {
                return(RES.FAIL(ex));
            }
        }
        public RES CreateTask财务分析(string jsonReq, string jsonRes)
        {
            var setName   = $"Stock:BaseData:AllCode";
            var qTaskName = "Stock:Task:CWFX:Task0";

            try
            {
                var count = 0;
                var total = 0;
                REDIS.Current.KeyRemove(qTaskName);
                var res = REDIS.Current.DictTraverse(setName, "*", (dictName, code, name, count2, index) =>
                {
                    var code2 = (code[0] == '6') ? "SH" + code : "SZ" + code;
                    var item  = new
                    {
                        Code       = code,
                        Url        = $"http://f10.eastmoney.com/f10_v2/FinanceAnalysis.aspx?code={code2}",
                        RetryCount = 3
                    };
                    var res2 = REDIS.Current.Enqueue(qTaskName, item);
                    total++;
                    if (res2.SUCCESS)
                    {
                        count++;
                    }
                    return(true);
                });
                res.MESSAGE = $"{MethodBase.GetCurrentMethod().Name} 任务创建完毕 应该创建 {total} 实际 {count}";
                return(res);
            }
            catch (Exception ex)
            {
                return(RES.FAIL($"{MethodBase.GetCurrentMethod().Name} 任务创建异常 {ex.Message}"));
            }
        }
        public RES CreateTask机构调研列表(string jsonReq, string jsonRes)
        {
            var setName   = $"Stock:ALLCode";
            var qTaskName = "Stock:Task:JGDYLB:Task0";

            try
            {
                var count = 0;
                var total = 0;
                REDIS.Current.KeyRemove(qTaskName);
                var res = REDIS.Current.DictTraverse(setName, "*", (dictName, code, name, count2, index) =>
                {
                    var item = new
                    {
                        Code       = code,
                        Url        = $"http://data.eastmoney.com/jgdy/gsjsdy/{code}.html",
                        RetryCount = 3
                    };
                    var res2 = REDIS.Current.Enqueue(qTaskName, item);
                    total++;
                    if (res2.SUCCESS)
                    {
                        count++;
                    }
                    return(true);
                });
                res.MESSAGE = $"{MethodBase.GetCurrentMethod().Name} 任务创建完毕 应该创建 {total} 实际 {count}";
                return(res);
            }
            catch (Exception ex)
            {
                return(RES.FAIL($"{MethodBase.GetCurrentMethod().Name} 任务创建异常 {ex.Message}"));
            }
        }
        public RES UpdateArticle(string keyName, string jsonReq, string jsonRes)
        {
            var setName    = $"Stock:Article";
            var qSyncName  = $"Stock:Sync:2DB:{setName}";
            var methodName = MethodBase.GetCurrentMethod().Name;

            try
            {
                var list  = JSON.ToObject <List <Article> >(jsonRes);
                var count = 0;
                if (null != list && 0 < list.Count)
                {
                    list.ForEach(p =>
                    {
                        p.Id     = GUID.FromStringToGuid(p.Content);
                        var res1 = REDIS.Current.Enqueue(qSyncName, p);
                        var res2 = REDIS.Current.SortedSetAdd(setName, p, double.Parse(p.PublishTime.ToString("yyyyMMddhhmm")));
                        var res  = (res1.SUCCESS && res2.SUCCESS) ? RES.OK() : RES.FAIL();
                        if (res.SUCCESS)
                        {
                            count += 1;
                        }
                    });
                }
                Console.WriteLine($"{MethodBase.GetCurrentMethod().Name} 传入 {list.Count} 实际 {count}");
                return(RES.OK(count, $"传入 {list.Count} 实际 {count}"));
            }
            catch (Exception ex)
            {
                return(RES.FAIL($"{methodName} {ex.Message}"));
            }
        }
        public RES CreateTask北向持股统计(string jsonReq, string jsonRes)
        {
            var setName   = $"Stock:JG";
            var qTaskName = "Stock:Task:BXCGTJ:Task0";

            try
            {
                var count = 0;
                var total = 0;
                REDIS.Current.KeyRemove(qTaskName);
                var res = REDIS.Current.SortedSetTraverse(setName, "*", (dictName2, href, score, count2, index2) =>
                {
                    var item = new
                    {
                        Score      = score,
                        Url        = href,
                        RetryCount = 3
                    };
                    var res2 = REDIS.Current.Enqueue(qTaskName, item);
                    total++;
                    if (res2.SUCCESS)
                    {
                        count++;
                    }
                    return(true);
                });
                res.MESSAGE = $"北向持股统计任务创建完毕 应该创建 {total} 实际 {count}";
                return(res);
            }
            catch (Exception ex)
            {
                return(RES.FAIL($"CreateTask北向持股统计 {ex.Message}"));
            }
        }
 public RES Update所有北向持股明细链接(string jsonReq, string jsonRes)
 {
     try
     {
         var list  = JSON.ToObject <List <Dictionary <string, string> > >(jsonRes);
         var count = 0;
         if (null != list && 0 < list.Count)
         {
             list.ForEach(p =>
             {
                 var dateTag  = p["DateTag"];
                 var listName = $"Stock:Task:BXCGMXURL:{dateTag}";
                 var res      = REDIS.Current.Enqueue(listName, p);
                 if (res.SUCCESS)
                 {
                     count += 1;
                 }
             });
         }
         Console.WriteLine($"{MethodBase.GetCurrentMethod().Name} 传入 {list.Count} 实际 {count}");
         return(RES.OK(count, $"传入 {list.Count} 实际 {count}"));
     }
     catch (Exception ex)
     {
         return(RES.FAIL($"Update所有北向持股明细链接 {ex.Message}"));
     }
 }
        public RES Update所有机构(string jsonReq, string jsonRes)
        {
            var setName   = $"Stock:JG";
            var qSyncName = $"Stock:Sync:2DB:{setName}";

            try
            {
                var list  = JSON.ToObject <List <所有机构> >(jsonRes);
                var count = 0;
                if (null != list && 0 < list.Count)
                {
                    list.ForEach(p =>
                    {
                        var res1 = REDIS.Current.Enqueue(qSyncName, p);
                        var res2 = REDIS.Current.SortedSetAdd(setName, p.Href, p.Sort);
                        var res  = (res1.SUCCESS && res2.SUCCESS) ? RES.OK() : RES.FAIL();
                        if (res.SUCCESS)
                        {
                            count += 1;
                        }
                    });
                }
                Console.WriteLine($"{MethodBase.GetCurrentMethod().Name} 传入 {list.Count} 实际 {count}");
                return(RES.OK(count, $"传入 {list.Count} 实际 {count}"));
            }
            catch (Exception ex)
            {
                return(RES.FAIL($"JG {ex.Message}"));
            }
        }
        public RES Get(string appId, string categoryId, int pageIndex, int pageSize)
        {
            var res = RES.FAIL("keyName参数未匹配");

            res = YunNewsService.GetInst().QueryList(null);
            return(res);
        }
Beispiel #12
0
 public RES Get()
 {
     try {
         return(RES.FAIL());
     }
     catch (Exception ex) {
         return(RES.FAIL());
     }
 }
        public RES Post()
        {
            var keyName = this.Request.Form["keyName"];
            var method  = this.Request.Form["method"];
            var taskId  = this.Request.Form["taskId"];
            var jsonReq = this.Request.Form["jsonReq"];
            var jsonRes = this.Request.Form["jsonRes"];
            var res     = RES.FAIL("keyName参数未匹配");

            return(res);
        }
 protected RES CheckBeforeQueryList(string data)
 {
     try
     {
         var inst = JSON.ToObject <QueryFilter>(data);
         return(RES.OK(inst));
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
Beispiel #15
0
 public RES Get(string command, string paramStr)
 {
     try
     {
         var res = REDIS.Current.Execute(string.Empty, command, paramStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
         return(res);
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
Beispiel #16
0
 /// <summary>
 /// 保存前业务数据检查
 /// </summary>
 /// <param name="data"></param>
 /// <returns></returns>
 protected RES CheckBeforeSave <T>(string data) where T : Item, new()
 {
     try
     {
         var inst = JSON.ToObject <T>(data);
         return(RES.OK(inst));
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
 protected RES CheckBeforeRemove(string data)
 {
     try
     {
         var inst = JSON.ToObject <Document>(data);
         return(RES.OK(inst));
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
Beispiel #18
0
 public RES Execute(string serverId, string command, object[] paramArr)
 {
     try
     {
         var res = (RedisValue[])REDIS.redis.GetDatabase().Execute(command, paramArr);
         return(RES.OK(res));
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
Beispiel #19
0
 public RES Delete(string param)
 {
     try
     {
         var req = JRequest.Parse(this.HttpContext.Request.Body);
         var res = REDIS.Current.Execute(string.Empty, req.Method, req.Param);
         return(res);
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
Beispiel #20
0
        ///清空队列
        public RES QueueClear(string appId, string queueName)
        {
            try
            {
                var res = this.Http.UploadString(this.url, JRequest.ToJson("Execute", new string[] { appId, "DEL", $"{redisKeyQueue}:{queueName}" }));

                return(RES.OK(res));
            }
            catch (Exception ex)
            {
                return(RES.FAIL(ex));
            }
        }
        protected RES IsExistTaskStatus(string keyName, string val)
        {
            var id = GUID.FromStringToGuid(val);
            var taskStatusKeyName = $"Stock:Task:Status:{keyName}:{id}";
            var res  = REDIS.Current.QueryKeys(taskStatusKeyName);
            var keys = res.DATA as List <string>;

            if (keys.Contains(taskStatusKeyName))
            {
                return(RES.OK(taskStatusKeyName));
            }
            return(RES.FAIL(keys));
        }
Beispiel #22
0
        ///入队列
        public RES EnQueue(string appId, string queueName, string data)
        {
            try
            {
                var res = this.Http.UploadString(this.url, JRequest.ToJson("Execute", new string[] { appId, "RPUSH", $"{redisKeyQueue}:{queueName}", data }));

                return(RES.OK(res));
            }
            catch (Exception ex)
            {
                return(RES.FAIL(ex));
            }
        }
Beispiel #23
0
        public RES CacheRemove(string appId, string cacheName, string key)
        {
            try
            {
                var res = this.Http.UploadString(this.url, JRequest.ToJson("Execute", new string[] { appId, "DEL", $"{cacheName}:{key}" }));

                return(RES.OK(res));
            }
            catch (Exception ex)
            {
                return(RES.FAIL(ex));
            }
        }
Beispiel #24
0
        public RES DictExistItem(string appId, string dictName, string key)
        {
            try
            {
                var res = this.Http.UploadString(this.url, JRequest.ToJson("Execute", new string[] { appId, "HEXISTS", $"{redisKeyDict}:{dictName}", key }));

                return(RES.OK(res));
            }
            catch (Exception ex)
            {
                return(RES.FAIL(ex));
            }
        }
Beispiel #25
0
        ///栈深度
        public RES StackDepth(string appId, string stackName)
        {
            try
            {
                var res = this.Http.UploadString(this.url, JRequest.ToJson("Execute", new string[] { appId, "LLEN", $"{redisKeyStack}:{stackName}" }));

                return(RES.OK(res));
            }
            catch (Exception ex)
            {
                return(RES.FAIL(ex));
            }
        }
 public RES QueryList(string query)
 {
     try
     {
         var setName      = "Stock:ShortNews";
         var startDateTag = long.Parse(DateTime.Now.Date.ToString("yyyyMMdd0000"));
         var endDateTag   = long.Parse(DateTime.Now.Date.ToString("yyyyMMdd9999"));
         var res          = REDIS.Current.SortedSetQuery(setName, startDateTag, endDateTag, true, 0, 10);
         return(res);
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
Beispiel #27
0
 public virtual RES Delete()
 {
     try
     {
         var req = JRequest.Parse(this.Request.Body);
         if (null != req)
         {
             var res = req.Execute(req);
             return(res);
         }
         return(RES.FAIL("未传入有效参数"));
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
Beispiel #28
0
 public virtual RES Get(string param)
 {
     try
     {
         var req = JRequest.Parse(param);
         if (null != req)
         {
             var res = req.Execute(req);
             return(res);
         }
         return(RES.FAIL("未传入有效参数"));
     }
     catch (Exception ex)
     {
         return(RES.FAIL(ex));
     }
 }
Beispiel #29
0
 public void ProcessRequest(HttpContext context)
 {
     try
     {
         context.Response.ContentType = CONST.application_json;
         //var inputParam = HttpRequestParam.Parse(context);
         var    path     = context.Request.QueryString["path"];
         var    fileName = context.Request.QueryString["fileName"];
         byte[] buffer   = new byte[(int)context.Request.Files[0].InputStream.Length];
         context.Request.Files[0].InputStream.Read(buffer, 0, buffer.Length);
         var res = FileService.GetInst(context.Server.MapPath("~")).SaveTo(path, fileName, buffer);
         context.Response.Write(res.ToJson());
     }
     catch (Exception ex)
     {
         context.Response.Write(RES.FAIL($"{ex.Message}\t{((null != ex.InnerException) ? ex.InnerException.Message : string.Empty)}").ToJson());
     }
 }
        public RES Post()
        {
            var keyName = this.Request.Form["keyName"];
            var method  = this.Request.Form["method"];
            var taskId  = this.Request.Form["taskId"];
            var jsonReq = this.Request.Form["jsonReq"];
            var jsonRes = this.Request.Form["jsonRes"];
            var res     = RES.FAIL("keyName参数未匹配");

            if ("RZRQ" == keyName || "ZJLX" == keyName || "CWFX" == keyName || "BXCGTJ" == keyName ||
                "BXCGMXURL" == keyName || "BXCJMX" == keyName || "JGDYLB" == keyName)
            {
                res = DataProcNode.GetInst().SaveProcData(keyName, taskId, jsonReq, jsonRes);
            }
            else if ("BXCODE" == keyName)
            {
                res = DataProcNode.GetInst().Update北向代码(jsonReq, jsonRes);
            }
            else if ("ALLCODE" == keyName)
            {
                res = DataProcNode.GetInst().UpdateALLCode(jsonReq, jsonRes);
            }
            else if ("ALLConception" == keyName)
            {
                res = DataProcNode.GetInst().UpdateALLConception(jsonReq, jsonRes);
            }
            else if ("JG" == keyName)
            {
                res = DataProcNode.GetInst().Update所有机构(jsonReq, jsonRes);
            }
            else if ("BXCGMXURLTASK" == keyName)
            {
                res = DataProcNode.GetInst().Update所有北向持股明细链接(jsonReq, jsonRes);
            }
            else if ("SHORTNEWS" == keyName)
            {
                res = DataProcNode.GetInst().UpdateShortNews(keyName, jsonReq, jsonRes);
            }
            else if ("ARTICLE" == keyName)
            {
                res = DataProcNode.GetInst().UpdateArticle(keyName, jsonReq, jsonRes);
            }
            return(res);
        }