public bool Handle(EventBus.Events.OrderEvaluationCompletedEvent evt) { if (evt == null) { return(true); } try { var order = orderService.Single <XuHos.Entity.Order>(a => a.OrderOutID == evt.OuterID); if (order != null) { order.IsEvaluated = true; var result = orderService.Update(order); if (result == true) { var CacheKey_Order = new XuHos.Common.Cache.Keys.EntityCacheKey <DTO.Platform.OrderDTO>(XuHos.Common.Cache.Keys.StringCacheKeyType.Order, order.OrderNo); CacheKey_Order.RemoveCache(); } return(result); } else { return(true); } } catch (Exception ex) { Common.LogHelper.WriteError(ex); } return(false); }
public SysGrabService(string name) { this._name = name; _CacheKey_TaskPool = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, name); _CacheKey_LatestTakeTime = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:LatestTakeTime"); _CacheKey_DerepList = $"{_CacheKey_TaskPool.KeyName}:Dereplication"; }
public void InvalidTask(T item, string category) { if (Manager.Instance != null) { var CacheKey_Waiting = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Waiting"); Manager.Instance.ListRemove <T>(CacheKey_Waiting.KeyName, item); } }
/// <summary> /// 登入,保存用户信息 /// </summary> /// <param name="userTokenStr"></param> /// <param name="user"></param> public static void SetUserTicket(UserLoginServerTicketDTO user, string userToken) { //设置缓存 var expireMinute = _GetUserTokenExpireMinute(); var UserTicket_CacheKey = new XuHos.Common.Cache.Keys.EntityCacheKey <UserLoginServerTicketDTO>( XuHos.Common.Cache.Keys.StringCacheKeyType.User_Ticket, userToken); user.ToCache(UserTicket_CacheKey, TimeSpan.FromMinutes(expireMinute)); }
/// <summary> /// 领取任务后,执行完成 /// </summary> /// <param name="item"></param> public void FinishTask(T item, string category) { if (Manager.Instance != null) { var CacheKey_DoingTask = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Doing"); var CacheKey_Finished = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Finished"); Manager.Instance.ListRemove <T>(CacheKey_DoingTask.KeyName, item); Manager.Instance.ListLeftPush(CacheKey_Finished.KeyName, item); } }
/// <summary> /// 已完成的任务数量 /// </summary> public long FinishedTaskCount(string category) { if (Manager.Instance != null) { var CacheKey_FinishedTask = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Finished"); return(Manager.Instance.ListLength(CacheKey_FinishedTask.KeyName)); } else { return(0); } }
/// <summary> /// 领取的任务列表是空的 /// </summary> /// <returns></returns> public bool DoingTaskListEmpty(string category) { if (Manager.Instance != null) { var CacheKey_DoingTask = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Doing"); return(Manager.Instance.ListLength(CacheKey_DoingTask.KeyName) <= 0); } else { return(true); } }
/// <summary> /// 领取任务后拒绝执行 /// </summary> /// <param name="item"></param> public void RejectTask(T item, string category, int priority) { if (Manager.Instance != null) { var CacheKey_DoingTask = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Doing"); var CacheKey_WaitTask = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Waiting"); Manager.Instance.ListRemove <T>(CacheKey_DoingTask.KeyName, item); Manager.Instance.ListRemove <T>(CacheKey_WaitTask.KeyName, item); Manager.Instance.ListLeftPush <T>($"{_CacheKey_TaskPool.KeyName}:{priority}", item); } }
/// <summary> /// 开始执行任务 /// </summary> /// <param name="item"></param> public void StartTask(T item, string category) { if (Manager.Instance != null) { var CacheKey_Waiting = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Waiting"); var CacheKey_Doing = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Doing"); //删除重复列表记录 Manager.Instance.SetRemove(_CacheKey_DerepList, item); Manager.Instance.ListRemove <T>(CacheKey_Waiting.KeyName, item); Manager.Instance.ListLeftPush(CacheKey_Doing.KeyName, item); } }
public static UserLoginServerTicketDTO GetUserTicket(string userTokenStr) { var CacheKey = new XuHos.Common.Cache.Keys.EntityCacheKey <UserLoginServerTicketDTO>(XuHos.Common.Cache.Keys.StringCacheKeyType.User_Ticket, userTokenStr); var ticket = CacheKey.FromCache(); if (ticket != null) { return(ticket); } else { return(default(UserLoginServerTicketDTO)); } }
/// <summary> /// 更新个人信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool UpdateUserInfo(UserDTO model) { using (var db = new DBEntities()) { var user = db.Users.Where(t => t.UserID == model.UserID).FirstOrDefault(); if (user != null) { if (model.UserCNName != null) { user.UserCNName = model.UserCNName; var member = (from m in db.UserMembers where m.UserID == user.UserID && m.Relation == EnumUserRelation.MySelf && m.IsDeleted == false select m).FirstOrDefault(); if (member != null) { member.MemberName = model.UserCNName; } } if (model.UserENName != null) { user.UserENName = model.UserENName; } if (model.Email != null) { user.Email = model.Email; } if (model._PhotoUrl != null) { user.PhotoUrl = model._PhotoUrl; } var CacheKey_User = new XuHos.Common.Cache.Keys.EntityCacheKey <XuHos.Entity.User>(StringCacheKeyType.User, user.UserID); CacheKey_User.RemoveCache(); return(db.SaveChanges() > 0); } return(false); } }
/// <summary> /// 领取任务 /// 从主队列移除后放入临时队列,此操作是原子操作 /// </summary> /// <param name=""></param> /// <returns></returns> public XuHos.Common.Enum.EnumApiStatus TakeTask(string category, out T task, List <string> taskGroups) { task = default(T); if (taskGroups == null) { taskGroups = new List <string>() { "ALL" }; } else { taskGroups.Add("ALL"); } if (Manager.Instance != null) { // 记录最后一次领单时间 Manager.Instance.StringSet <DateTime?>(_CacheKey_LatestTakeTime.KeyName, DateTime.Now); var CacheKey_Waiting = new XuHos.Common.Cache.Keys.EntityCacheKey <T>(XuHos.Common.Cache.Keys.StringCacheKeyType.Grab, $"{_name}:{_Scope}:{category}:Waiting"); //按照分组下优先级获取 Func <int, string, T> getGroupPriorityTask = (p, taskGroupName) => { return(Manager.Instance.ListRightPopLeftPush <T>($"{_CacheKey_TaskPool.KeyName}:{taskGroupName}:{p}", CacheKey_Waiting.KeyName)); }; //当前任务已经被消耗了才重新获取新任务 if (Manager.Instance.ListRange <T>(CacheKey_Waiting.KeyName).Count <= 0) { if (task == null) { foreach (var taskGroupName in taskGroups) { //依次获取 for (int i = max_priority; i >= min_priority; i--) { task = getGroupPriorityTask(i, taskGroupName); if (task != null) { return(XuHos.Common.Enum.EnumApiStatus.BizOK); } } } } } else { task = Manager.Instance.ListRange <T>(CacheKey_Waiting.KeyName).FirstOrDefault(); return(XuHos.Common.Enum.EnumApiStatus.BizDoctorTaskAlreadyTaskUnhandledFinish); } return(XuHos.Common.Enum.EnumApiStatus.BizDoctorTaskPoolEmpty); } else { return(XuHos.Common.Enum.EnumApiStatus.BizError); } }
/// <summary> /// 获取验证通过的接入端信息 /// </summary> /// <param name="token"></param> /// <returns></returns> public static XuHos.BLL.Common.DTOs.Response.ResponseToken GetAppToken(string apptoken) { var CacheKey = new XuHos.Common.Cache.Keys.EntityCacheKey <XuHos.BLL.Common.DTOs.Response.ResponseToken>(XuHos.Common.Cache.Keys.StringCacheKeyType.API_apptoken, apptoken); return(CacheKey.FromCache()); }