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(); }
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); }
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)); } }
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)); } }
/// <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)); } }
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)); } }
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)); } }
///清空队列 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)); }
///入队列 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)); } }
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)); } }
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)); } }
///栈深度 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)); } }
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)); } }
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)); } }
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); }