ASP.. Net WebApi Rest服务-使用Task.Factory.StartNew

本文关键字:使用 Task Factory StartNew 服务 Net WebApi Rest ASP | 更新日期: 2023-09-27 18:05:03

我们有一个用c#为。net 4.0编写的WebApi json rest服务,运行在AWS上。该服务有一个/log端点,该端点接收日志并通过tcp将日志转发到logstash进行存储。

/log端点使用Task.Factory.StartNew将日志异步发送给logstash并返回StatusCode。马上好了。这是因为我们不想让客户端等待日志发送到logstash。

所有异常都被观察和处理,我们也不关心日志是否因为服务关闭或回收而丢失,因为它们不是关键的。

最初日志流非常低,在峰值时间可能每小时20或30个。然而,我们最近开始发送大量的日志,每小时可能超过1000条。所以现在的问题是,通过使用task . factorting . startnew,我们是否生成了大量的线程,即每个请求1个到/log端点,或者这是由线程池管理的?

我们使用nLog进行内部日志记录,但想知道我们是否可以将日志从/log端点传递到nLog,以利用其异步批处理功能,并将日志发送到logstash?我们有一个自定义目标,它将发送日志到tcp端口。

ASP.. Net WebApi Rest服务-使用Task.Factory.StartNew

. net中的任务不等于一个线程。. net将管理创建的线程数量,. net启动的任务不会超过硬件的处理能力。