コード例 #1
0
        /// <summary>
        /// 缓存预热,强制重新缓存
        /// </summary>
        /// <returns>影响行数</returns>
        public static int CachePreheating()
        {
            var result = 0;

            // 把所有的数据都缓存起来的代码
            var manager = new BaseUserLogonManager();
            // 基础用户的登录信息重新缓存起来
            // 2016-04-25 吉日嘎拉 提高性能、读取最少的数据
            var commandText = "SELECT " + BaseUserLogonEntity.FieldUserId + "," + BaseUserLogonEntity.FieldOpenId
                              + " FROM " + BaseUserLogonEntity.CurrentTableName + " T WHERE T." + BaseUserLogonEntity.FieldUserPassword + " IS NOT NULL AND T." + BaseUserLogonEntity.FieldOpenIdTimeoutTime + " IS NOT NULL AND T." + BaseUserLogonEntity.FieldEnabled + " = 1 AND T." + BaseUserLogonEntity.FieldOpenIdTimeoutTime + " - sysdate < 0.5";

            var dataReader = manager.ExecuteReader(commandText);

            if (dataReader != null && !dataReader.IsClosed)
            {
                while (dataReader.Read())
                {
                    var userId = dataReader[BaseUserLogonEntity.FieldUserId].ToString();
                    var openId = dataReader[BaseUserLogonEntity.FieldOpenId].ToString();
                    //暂停Redis缓存 Troy.Cui 2018.07.24,根本没用到Redis,分离DotNet.Business.Web后,就更没必要了
                    CacheUtil.Set(userId, openId);

                    result++;
                    if (result % 500 == 0)
                    {
                        Console.WriteLine(result + " : OpenIdClient User : "******" : 完成 ");

            return(result);
        }