我有一个API端点需要尽快返回给调用者。它目前返回1ms以下。但是,如果我在数据库中记录了一些内容,现在需要接近10毫秒。请求完成后的处理
你会如何处理完成请求,然后在请求完成后进行某种处理?我尝试了Response.Body.Flush(),但是没有完成请求,它仍然需要全部10ms。它看起来像是发送/清除有效负载,但请求仍然没有完成,直到操作方法完成。
它会在中间件中执行日志记录吗?
编辑:
一个解决办法,我发现是使用FluentScheduler这样的:
JobManager.Initialize(new Registry());
JobManager.Start();
Program.cs中
前host.Run(),然后从这样的活动时间表的紧迫任务:在中间件
JobManager.AddJob(() =>
{
// do something...
}, (s) => s.ToRunOnceIn(1).Seconds());
这有点广泛,不知道您是否使用任何消息代理/总线或查看特定的代码。也许发布一些你正在使用的代码。最直接的方法是使用消息总线,然后启动一个事件并稍后记录它 – Tseng
我没有使用任何类型的排队系统。我希望在框架中有一些支持这一点的东西。 – pbz
Response.OnCompleted接近,但连接在运行时仍处于打开状态。 – pbz