关于使用分表缓存的问题 返回
SqlSugar
沟通中
7
349
SonyXbox 发布于1周前
悬赏:0 飞吻
分表有:
1日:m_test_20250101
2日:m_test_20250102
3日:m_test_20250103
4日:m_test_20250104
当使用了“StaticConfig.SplitTableGetTablesFunc = () =>{}"功能,每晚23点定时更新缓存;
今天是20205年5号,业务在早上8点insert表"test",sqlsugar会自动创建“m_test_20250105”,此时查询5号的数据时,是查询不到,请问这个问题如何解决?
{ //指定查询表名,正常 var tableName = _dbClient.SplitHelper<MQConsumerLogs>().GetTableName(DateTime.Now); var entity = await this._dbClient.Queryable<MQConsumerLogs>().AS(tableName) .Where(t => t.Id == 1874358644460621824).FirstAsync(); } { //这种方式就查询不到最新创建的表m_test_20250105 var entity = await this._dbClient.Queryable<MQConsumerLogs>() .Where(t => t.Id == 1874358644460621824) .SplitTable().FirstAsync(); }
热忱回答(7)
-
fate sta VIP01周前
23点59分59秒更新
0 回复 -
fate sta VIP01周前
肯定不能是23点
0 回复 -
SonyXbox VIP01周前
@fate sta:这个就算是23:59:59清空缓存,也解决不了问题啊;
是在这时间之后触发建表后,会自动更新缓存吗?我测试看不会,所以缓存中的数据是过期的(缓存数据不一致),这个问题如何解决?
比如缓存中有三张表,insert是自动创建了一张新表,缓存中会自动变成四张表吗?
0 回复 -
Liang VIP01周前
同问
0 回复 -
fate sta VIP01周前
@Liang:
SqlSugarCore 5.1.4.173-preview04
过五分钟后更新
StaticConfig.SplitTableCreateTableFunc = (type,insertObjs)=> { //如果插入频繁可以根据 insertObjs 有没有今天时间来验证是否清空缓存 };
0 回复 -
SonyXbox VIP01周前
@fate sta:没有找到此预览版啊
0 回复 -
SonyXbox VIP01周前
SqlSugarCoreNoDrive 我使用的是这个版本
0 回复