Explorar el Código

增加数据库实例空闲时间(分)设置

xiaoxue hace 4 años
padre
commit
a1d539677f

+ 5 - 0
Admin.Core.Common/Configs/DbConfig.cs

@@ -39,6 +39,11 @@ namespace Admin.Core.Common.Configs
         /// </summary>
         public string ConnectionString { get; set; } = "Data Source=|DataDirectory|\\admindb.db; Pooling=true;Min Pool Size=1";
 
+        /// <summary>
+        /// 空闲时间(分)
+        /// </summary>
+        public int IdleTime { get; set; } = 10;
+
         /// <summary>
         /// 生成数据
         /// </summary>

+ 5 - 0
Admin.Core/Admin.Core.Common.xml

@@ -595,6 +595,11 @@
             数据库字符串
             </summary>
         </member>
+        <member name="P:Admin.Core.Common.Configs.DbConfig.IdleTime">
+            <summary>
+            空闲时间(分)
+            </summary>
+        </member>
         <member name="P:Admin.Core.Common.Configs.DbConfig.GenerateData">
             <summary>
             生成数据

+ 4 - 2
Admin.Core/Db/TenantDBServiceCollectionExtensions.cs

@@ -29,8 +29,10 @@ namespace Admin.Core.Db
             var dbConfig = new ConfigHelper().Get<DbConfig>("dbconfig", env.EnvironmentName);
             var appConfig = new ConfigHelper().Get<AppConfig>("appconfig", env.EnvironmentName);
             var user = services.BuildServiceProvider().GetService<IUser>();
-            
-            IdleBus<IFreeSql> ib = new IdleBus<IFreeSql>(TimeSpan.FromMinutes(1));
+
+            int idleTime = dbConfig.IdleTime > 0 ? dbConfig.IdleTime : 10;
+
+            IdleBus <IFreeSql> ib = new IdleBus<IFreeSql>(TimeSpan.FromMinutes(idleTime));
 
             ib.TryRegister("tenant_" + user.TenantId.ToString(), () =>
             {

+ 3 - 0
Admin.Core/configs/dbconfig.json

@@ -38,6 +38,9 @@
   //Sqlite "Data Source=|DataDirectory|\\admindb.db; Pooling=true;Min Pool Size=1"
   "connectionString": "Data Source=|DataDirectory|\\admindb.db; Pooling=true;Min Pool Size=1",
 
+  //空闲时间(分)
+  "idleTime": 10,
+
   //多数据库
   //1、Common.Dbs中定义MySqlDb类
   //2、IFreeSql<MySqlDb> _mySqlDb;