88using GameFrameX . DataBase . Mongo ;
99using GameFrameX . Utility . Extensions ;
1010using GameFrameX . Foundation . Logger ;
11+ using GameFrameX . Utility . Setting ;
1112using MongoDB . Bson ;
1213using MongoDB . Driver ;
1314
@@ -208,11 +209,6 @@ public override async Task WriteStateAsync()
208209
209210 #region 仅DBModel.Mongodb调用
210211
211- /// <summary>
212- /// 单次批量保存的最大数量
213- /// </summary>
214- private const int ONCE_SAVE_COUNT = 500 ;
215-
216212 /// <summary>
217213 /// 保存所有状态数据到数据库
218214 /// </summary>
@@ -262,7 +258,7 @@ public static async Task SaveAll(bool shutdown, bool force = false)
262258 writeList . Add ( new ReplaceOneModel < BsonDocument > ( filter , bsonDoc ) { IsUpsert = true , } ) ;
263259 idList . Add ( state . Id ) ;
264260 }
265- } ) ) ;
261+ } , GlobalSettings . CurrentSetting . SaveDataBatchTimeOut ) ) ;
266262 }
267263 }
268264
@@ -276,9 +272,9 @@ public static async Task SaveAll(bool shutdown, bool force = false)
276272 LogHelper . Debug ( $ "[StateComp] 状态回存 { stateName } count:{ writeList . Count } ") ;
277273 var currentDatabase = GameDb . As < MongoDbService > ( ) . CurrentDatabase ;
278274 var collection = currentDatabase . GetCollection < BsonDocument > ( stateName ) ;
279- for ( var idx = 0 ; idx < writeList . Count ; idx += ONCE_SAVE_COUNT )
275+ for ( var idx = 0 ; idx < writeList . Count ; idx += GlobalSettings . CurrentSetting . SaveDataBatchCount )
280276 {
281- var docs = writeList . GetRange ( idx , Math . Min ( ONCE_SAVE_COUNT , writeList . Count - idx ) ) ;
277+ var docs = writeList . GetRange ( idx , Math . Min ( GlobalSettings . CurrentSetting . SaveDataBatchCount , writeList . Count - idx ) ) ;
282278 var ids = idList . GetRange ( idx , docs . Count ) ;
283279
284280 var save = false ;
0 commit comments