questdb 插入的时候调用的db.RestApi().BulkCopyAsync(list),并发查询时报这个错误 返回
@fate sta 你好,插入的时候调用的db.RestApi().BulkCopyAsync(list),并发查询时报这个错误,知道是什么原因吗?
LogLevel:Error
Message:"errorlog":One or more errors occurred. (00000: table busy [reason=unknown])
System.AggregateException: One or more errors occurred. (00000: table busy [reason=unknown])
---> Npgsql.PostgresException (0x80004005): 00000: table busy [reason=unknown]
at Npgsql.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|194_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
at SqlSugar.AdoProvider.GetDataReaderAsync(String sql, SugarParameter[] parameters)
at SqlSugar.AdoProvider.SqlQueryAsync[T,T2,T3,T4,T5,T6,T7](String sql, Object parameters)
at SqlSugar.AdoProvider.SqlQueryAsync[T](String sql, SugarParameter[] parameters)
Exception data:
Severity: ERROR
SqlState: 00000
MessageText: table busy [reason=unknown]
Position: 1
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
热忱回答(2)
-
fate sta VIP04天前
db.CopyNew()加上
0 回复 -
星辰 VIP023小时前
/// <summary>
/// restapi单条插入
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public async static Task<int> InsertByOneRestApi<T>(T obj) where T : class, new()
{
try
{
return await db.CopyNew().RestApi().BulkCopyAsync<T>(obj);
}
catch (Exception ex)
{
logger.Error(ex);
}
return 0;
}
/// <summary>
/// restapi批量插入
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public async static Task<int> InsertByListRestApi<T>(List<T> list) where T : class, new()
{
try
{
return await db.CopyNew().RestApi().BulkCopyAsync<T>(list);
}
catch (Exception ex)
{
logger.Error(ex);
}
return 0;
}
用这个单个对象插入,可以成功,用批量的list插入就失败,不知道什么问题?
0 回复