我在 asp.net core 3.1 应用程序中使用Channel
,system.threading.channels
我不断地写入通道并从中读取。
当我从 中读取项目时channel
,我正在调用数据库来保存该项目。
问题是,如果数据库调用失败,我可以移动到 item back tochannel
重新读取它吗?
private static async Task Consume(ChannelReader<int> c)
{
try
{
while (true)
{
int item = await c.ReadAsync();
// process item to the database
//if database call fails, can we move the item back to Channel
}
}
catch (ChannelClosedException) {}
}