C# 正在寻找消除ASP.NET核心中临时数据库存储的方法

C# 正在寻找消除ASP.NET核心中临时数据库存储的方法,c#,asp.net-core,C#,Asp.net Core,我有一个用ASP.NET Core 3.1编写的API,它托管在服务器上 [HttpPost] public async Task<IActionResult> Post(Packet packet) { var result = await _collectionRepository.AddCollection(JsonSerializer.Serialize(resultPacket)); return Ok(result); } 大约有100多台客户机使用此A

我有一个用ASP.NET Core 3.1编写的API,它托管在服务器上

[HttpPost]
public async Task<IActionResult> Post(Packet packet)
{
    var result = await _collectionRepository.AddCollection(JsonSerializer.Serialize(resultPacket));
    return Ok(result);
}
大约有100多台客户机使用此API发布一些数据包,所有客户机都在并发API调用中发布数据

在托管API的服务器中,我使用MongoDB临时存储数据,并定期从MongoDB集合中读取数据,将其写入文件,删除已读取的记录

正如你所见,我依赖于一些临时存储,然后写入文件


问题是,是否有任何功能可用的点网络核心,我可以消除临时存储写入或至少我可以消除一些数据库存储和使用其他东西,请建议

我不会说.Net内核内置了某种东西,可以神奇地让这个过程变得更简单。如果您试图从API和数据库中卸载工作,那么最好的选择可能是简单地将要处理的数据包放入消息队列,并让后台工作进程在时间允许的情况下(如果不是时间敏感的话)处理它们。如果您是自托管的,您可以使用RabbitMQ或在云Azure中使用Azure存储队列或服务总线等选项。然后创建一个作为服务运行的worker console应用程序或Azure函数,用于轮询队列并根据需要处理数据并导出到文件。队列在某种程度上相当于您的MongoDB,因为它将it服务器作为临时存储位置,但队列可能是比DB更合适的中间位置,并且它的扩展性非常好