• 定时请求微信Access_Token


            /// <summary>
            /// 设置缓存并在缓存超时两分钟前重新请求
            /// </summary>
            private void SetAndAutoRefreshAccessToken()
            {
                object oToken = HttpContext.Current.Cache[WxConst.ACCESS_TOKEN];
                string sToken = "";
                int iExpiresIn = 0;
                if (oToken == null)
                {
                    sToken = GetAccessToken(out iExpiresIn);
    
                    // 缓存到期前更新缓存
                    HttpContext.Current.Cache.Insert(WxConst.ACCESS_TOKEN, sToken, null, DateTime.Now.AddSeconds(iExpiresIn), TimeSpan.Zero,
                        (string key, CacheItemUpdateReason reason, out object expensiveObject, out CacheDependency dependency, out DateTime absoluteExpiration, out TimeSpan slidingExpiration) =>
                        {
                            sToken = GetAccessToken(out iExpiresIn);
                            // 设置缓存有效时间为微信access_token有效斯减120秒
                            iExpiresIn = iExpiresIn - 120;
    
                            expensiveObject = sToken;
                            dependency = null;
                            absoluteExpiration = DateTime.Now.AddSeconds(iExpiresIn);
                            slidingExpiration = TimeSpan.Zero;
                        }
                        );
                }
            }
  • 相关阅读:
    MySQL数据库之数据类型
    MySQL数据库之数据操作
    MySQL数据库之表的操作
    十、原子操作
    九、std::async异步线程
    八、条件变量
    cisco笔试记录
    七、单例设计模式
    基于HTTP的功能追加协议
    使用栈来计算后缀表达式
  • 原文地址:https://www.cnblogs.com/coder-soldier/p/6901068.html
Copyright © 2020-2023  润新知