当前位置: 首页 > news >正文

ui展示 网站centos架设wordpress

ui展示 网站,centos架设wordpress,wordpress怎么适配手机端,免费建域名网站背景做微信公众号开发的时候#xff0c;其中有个接收普通消息、接收事件推送 API。有这么条规则#xff0c; ”微信服务器在五秒内收不到响应会断掉连接#xff0c;并且重新发起请求#xff0c;总共重试三次。假如服务器无法保证在五秒内处理并回复#xff0c;可以直接回… 背景 做微信公众号开发的时候其中有个接收普通消息、接收事件推送 API。有这么条规则  ”微信服务器在五秒内收不到响应会断掉连接并且重新发起请求总共重试三次。假如服务器无法保证在五秒内处理并回复可以直接回复空串微信服务器不会对此作任何处理并且不会发起重试。详情请见“发送消息-被动回复消息””。概括起来就2点1、就是说5s没响应这个请求就会被放弃2、会重新发起请求具有幂等性问题这样就会产生2个问题。1、假设我的方法就正好需要6s,那么即使返回结果也是没用的因为请求被放弃了。2、我需要返回给用户正确的回信假设第一次超时没法及时回信比如绑定操作第一次没回信第二次再来总不能回复绑定过了这样显然不合理。或者直接回复 success 这样显然没法正常的进行消息提醒。那么怎么做到既执行了操作第一次超时了第二次微信重试又及时回复正确的回信呢 。代码实现1、定义缓存的key就是消息MsgId。 string cacheKey model.MsgId.ToString(); 2、使用缓存机制把结果缓存起来下次进来直接回复上次执行的结果。 TimeSpan expired new TimeSpan(0, 0, 20);string cacheKey model.MsgId.ToString();return _cacheLayer.Get(cacheKey, () {MsgReply param new MsgReply() { ToUserName model.FromUserName, FromUserName model.ToUserName };string Jsonstr WeiXinHelper.ReadAccess(HttpRuntime.AppDomainAppPath.ToString() /App_Data/WeChat/KeyWordReplay.json);var r JsonConvert.DeserializeObjectAutoReplay(Jsonstr);param.Content r.content;if (String.Equals(model.MsgType, text, StringComparison.CurrentCultureIgnoreCase)){var item r.keywordcontent.FirstOrDefault(o o.keyword.Contains(model.Content));if (item ! null){param.Content item.content;}}string response _weChatAlertsService.SubscribeReply(param);AddReceiveLog(model, xml, response);return response;}, expired); 3、这样既解决幂等问题也返回了正确的结果。4、这里需要注意缓存取得每个 Key专有的 lock object若同时有多个 thread要求相同资料只会(到数据库)查第一次剩下的从 cache读取。 public T GetT(string key, FuncT getDataWork, TimeSpan absoluteExpireTime, bool forceRefresh false, bool returnCopy true) where T : class{try{lock (GetMemoryCacheLockObject(key)){private static object GetMemoryCacheLockObject(string key){string cacheLockKey string.Format(MemoryCacheLockObjectFormat, key);lock (CacheObject){var lockObject CacheObject[cacheLockKey];if (lockObject null){// 取得每個 Key專屬的 lock object若同時有多個 thread要求相同資料只會(到資料庫)查第一次剩下的從 cache讀取lockObject new object();CacheObject.Set(cacheLockKey,lockObject,new System.Runtime.Caching.CacheItemPolicy(){AbsoluteExpiration DateTimeOffset.UtcNow.AddMinutes(10)});}return lockObject;}} 总结1、使用缓存机制把第一次的结果保存下来对方重试的时候直接返回上次的结果。2、使用lock 保证并发的时候若同时有多个 thread要求相同资料只会(到数据库)查第一次剩下的从 cache读取。
http://www.sadfv.cn/news/50248/

相关文章:

  • 部门做网站优点河南住房和城乡建设部网站
  • 专业建站推广服务外贸网店怎么开
  • 做网站 免费字体做废钢推广网站
  • 域名和空间网站邯郸哪里可以学建网站
  • 重庆学校网站推广设计图软件
  • 上海缔客网站建设公司网站建设能赚钱吗
  • 英文网站制作注意点公司免费建网站
  • 常用网站开发语言软件下载商店
  • 中国做国际期货最大的网站山东金泰建设有限公司网站
  • 网站哪个做的好dw网页制作步骤视频
  • 网站优化怎么样做网站服务器出问题
  • 网站建设具体运算用vs做网站如何连接数据库
  • 做阿里国际网站多少钱建站模板行情
  • 网站图怎么做名城苏州网首页
  • 长沙 网站设计 公司wordpress 博客实例
  • 苏州晶体公司网站实体店线上线下运营模式
  • 网站首页大图轮播制作宣传网站有哪些
  • 焦作会做网站制作的有哪家为知笔记 wordpress
  • 怎样帮拍卖网站做策划flask和wordpress
  • 河北中太建设集团有限公司网站然后建设自营网站
  • 做钓鱼网站用哪种编程语言wordpress文章版权主题插件
  • 正规的锦州网站建设专网建设是什么
  • 漯河企业网站建设公司wordpress页面视频播放器
  • 保定 网站会宁县建设局网站
  • 网站建设对标行业分析干净的下载网站
  • 妇联 网站建设情况网站开发慕枫
  • 临检中心网站建设大气的广告公司名称
  • 多媒体网站设计开发是指什么做公司网站需要哪些资料
  • 乐从容桂网站建设家装企业网站系统下载
  • 建个公司网站怎么弄南川网站制作