关于使用分表缓存的问题 返回

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

  • 23点59分59秒更新

    0 回复
  • 肯定不能是23点

    0 回复
  • @fate sta:这个就算是23:59:59清空缓存,也解决不了问题啊;

    是在这时间之后触发建表后,会自动更新缓存吗?我测试看不会,所以缓存中的数据是过期的(缓存数据不一致),这个问题如何解决?

    比如缓存中有三张表,insert是自动创建了一张新表,缓存中会自动变成四张表吗?

    0 回复
  • Liang Liang VIP0
    1周前

    同问

    0 回复
  • @Liang

    SqlSugarCore 5.1.4.173-preview04  

    过五分钟后更新


      StaticConfig.SplitTableCreateTableFunc = (type,insertObjs)=>
      {
        //如果插入频繁可以根据 insertObjs 有没有今天时间来验证是否清空缓存
       
      };


    0 回复
  • @fate sta:没有找到此预览版啊

    0 回复
  • SqlSugarCoreNoDrive  我使用的是这个版本

    0 回复