执行sql超时时间不生效 返回

SqlSugar 沟通中
3 376

image.png




internal class Program
{
    static async Task Main(string[] args)
    {
        await TestTimeout();
    }

    static async Task TestTimeout()
    {
        var db = new SqlSugarClient(new ConnectionConfig
        {
            DbType = DbType.TDengine,
            ConnectionString = "Host=localhost;Port=6030;Username=root;Password=taosdata;Database=testtimeout;TsType=config_ns;",

        }, t =>
        {
            t.Ado.CommandTimeOut = 1;
        });
        db.DbMaintenance.CreateDatabase();
        db.CodeFirst.InitTables<TestTimeoutEntity>();
        while (true)
        {
            try
            {
                var now = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}";
                Console.WriteLine($"{now} 开始插入");
                var str = $"INSERT INTO `testtimeout_2` USING `testtimeout` TAGS ('1') (`ts`,`val`) VALUES ('{now}',{Random.Shared.Next(10, 20)})";

                await db.Ado.ExecuteCommandAsync(str);
                Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 插入完成");
            }
            catch (Exception e)
            {

                Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 异常");
            }
            await Task.Delay(TimeSpan.FromSeconds(1));
        }
    }

}

[SugarTable("testtimeout")]
[STable(STableName = "testtimeout", Tag1 = nameof(Id))]
public class TestTimeoutEntity
{
    [SugarColumn(IsPrimaryKey = true, SqlParameterDbType = typeof(DateTime19))]
    public DateTime Ts { get; set; }

    public long Id { get; set; }

    public double Val { get; set; }
}



tdengine正常运行时,停止tdengine服务,超时时间设置不生效


热忱回答3

  • fate sta fate sta VIP0
    2025/7/24

    没有这个功能。。

    0 回复
  • fate sta fate sta VIP0
    2025/7/24

    image.png

    这个是源码,我暂时没找到可以实配置的地方

    0 回复
  • try
    {
        var cts = new CancellationTokenSource();
        cts.CancelAfter(TimeSpan.FromSeconds(1));
        var now = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}";
        Console.WriteLine($"{now} 开始插入");
        var str = $"INSERT INTO `testtimeout_2` USING `testtimeout` TAGS ('1') (`ts`,`val`) VALUES ('{now}',{Random.Shared.Next(10, 20)})";
    
        await db.Ado.ExecuteCommandAsync(str,null,cts.Token);
        Console.WriteLine($"{DateTime.Now:yyyy-MM-dd HH:mm:ss} 插入完成");
    }



    执行sql的时候,传入CancellationToken也不生效,有什么办法可以实现超时抛异常吗?

    0 回复