请求完成后的处理

2023-12-13

我有一个 API 端点需要尽快返回给调用者。目前返回时间不到 1 毫秒。然而,如果我将一些内容记录到数据库中,现在需要接近 10 毫秒。

您将如何完成请求,然后在请求完成后进行某种处理?我尝试使用 Response.Body.Flush(),但这并没有完成请求,而且仍然需要整整 10 毫秒。看起来它正在发送/刷新有效负载,但在操作方法完成之前请求仍然没有完成。

在中间件中进行日志记录是否有效?

EDIT:

我发现的一种解决方法是使用流利调度器像这样:

JobManager.Initialize(new Registry());
JobManager.Start();

在 Host.Run() 之前的 Program.cs 中,然后通过如下操作安排立即任务:

JobManager.AddJob(() =>
{
    // do something...
}, (s) => s.ToRunOnceIn(1).Seconds());

您需要以某种方式启动一个不同的线程。放置在管道前面的中间件将使您有机会在请求完成之前完成工作。如果你从那里旋转一个线程,那么它可能会起作用。

你可能想使用某种生产者-消费者模式这样你就不会杀死你的服务器。否则,如果每个请求都启动一个立即工作的线程,并且您同时有许多请求,则最终可能会耗尽资源。生产者-消费者将帮助您限制这项工作。

如果您不着急,可以再等一周左右,届时我将提供 ASP.NET 的文件记录器,然后您将在那里看到类似的实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请求完成后的处理 的相关文章

随机推荐

  • 使用 Firebug Lite 测试 IE6

    我使用 IEtester 在 IE6 中进行测试 因为客户端希望在其中看到页面 直到几周前 我还可以在 IETester 上使用 IE6 中的 firebug lite Stable Channel 尽可能地工作 现在我不能了 我不知道发生
  • IntentService 正在冻结我的应用程序 UI

    在我的应用程序中 我使用 Intentservice 从服务器获取数据并将获取的数据存储到本地 sqlite 数据库中 我正在使用 5 IntentService 来获取并填充五个表 每个 Intent Service 的数据最多可达 30
  • 我可以在 Apple Wallet 中访问哪些通行证

    我是 iOS 开发新手 想使用 PassKit 库开发一个小项目 经过大量搜索 Apple 文档 stackoverflow 后 我似乎无法清楚地理解我的问题的可能答案 是否可以访问不是我创建的通行证 现在 我不是在谈论与支付相关的通行证
  • 有没有办法统计执行的IL指令的数量?

    我想对 C 进程进行一些基准测试 但我不想使用时间作为向量 我想计算在特定方法调用中执行的 IL 指令的数量 这可能吗 Edit我并不是指方法体的静态分析 我指的是执行的实际指令数 因此 例如 如果方法体包含循环 则计数将增加 无论指令的数
  • docx 牢不可破的单词

    我正在尝试替换 docx 文件中的单词 如所述here public static void SearchAndReplace string document using WordprocessingDocument wordDoc Wor
  • 在数组上使用 .slice 方法

    我正在练习 JavaScript Koan 的数组部分 但我不完全理解为什么这些答案是正确的 如果有人可以澄清 让我知道我是否错了 我在下面添加了我的假设 it should slice arrays function var array
  • 单元测试-如何在flutter中模拟第三方库类Dio的参数

    我正在尝试测试一个简单的存储库类 该类使用依赖注入的 Dio 包进行网络调用 Http post 的要求是将 Map 对象发送到带有以下标头的 URL Content Type application json 您可以在下面看到这一点 cl
  • BeautifulSoup Div 类返回空

    我检查了类似的问题 但找不到解决方案 我正在尝试从以下页面中获取额外旅行时间的分钟数 46 https www tomtom com en gb trafficindex city istanbul 我尝试了两种方法 Xpath 和 fin
  • 划分两个 pandas DataFrame 并保留非数字列

    我有两个包含数字和非数字值的 pandas DataFrame 我想将一个除以另一个 但保留非数字列 这是一个 MWE a pd DataFrame group1 1 2 group1 3 4 group1 5 6 columns Grou
  • 无法使用 im.getcolors

    我正在尝试这段代码 im Image open myimage colors im getcolors print colors 它返回 无 所以我尝试了这个 im Image open myimage size im size color
  • 获取Scala3宏中的类型信息

    我正在努力获取 Scala3 宏实现中的类型信息 我将通过代码来解释问题 应用逻辑如下 object BlockServiceImpl extends BlockService def authenticateUser0 new Servi
  • 如何使用控制台输出捕获警告?

    我正在尝试捕获 R 脚本的完整控制台日志 我想要所有事情按时间顺序排列 并在发生时打印警告 我试过这个 options warn 1 tmpSinkfileName lt tempfile sink tmpSinkfileName spli
  • Netbeans 无法识别外部 JAR 中的复合组件

    我已将许多复合组件打包在一个 JAR 中 但是 当在另一个项目 使用 Maven 中使用它们时 Netbeans 编辑器会将红色错误行放在使用复合组件的行下 即使项目按预期编译和运行也是如此 复合组件 JAR 的文件夹结构如下所示 comp
  • pandas xlsxwriter,格式表标题 - 不是工作表标题

    我正在使用 xlsxwriter 将 pandas DataFrame 保存到 excel 我已经设法格式化所有数据 设置列宽 字体大小等 除了更改标题的字体 但我找不到方法 这是我的例子 import pandas as pd data
  • 如何让这个二维数组向右旋转 90 度?

    所以我有一个 2D 数组 它应该向右旋转 90 度 但它却向左旋转 实在想不通为什么 公共类 CrackCode16 public static void main String args int oldarray new int 3 3
  • 从 iframe 获取 url 并更新浏览器 url 中的哈希值

    我尝试了一些不同的方法 但没有任何效果 基本上我需要从 iframe 获取当前位置 url 获取我想要的部分并将其返回到 url 中的哈希值 我怎样才能在JavaScript中做到这一点 选择正确的iframe元素 拉出src属性 做你的事
  • Create-React-App 应用程序中index.html 和index.js 之间的连接在哪里?

    我开始使用 Create React App 但我不明白如何index js已加载到里面index html 这是html代码
  • keras Conv2d值错误:负尺寸大小

    我是 keras 新手 正在处理以 Tensorflow 作为后端的回归问题 X1 TrainingSet 0 603 Y1 TrainingSet 603 607 reshape Xtrain for CNN X1 X1 reshape
  • 使用 ctrl+c 停止 python

    I have a python script that uses threads and makes lots of HTTP requests I think what s happening is that while a HTTP r
  • 请求完成后的处理

    我有一个 API 端点需要尽快返回给调用者 目前返回时间不到 1 毫秒 然而 如果我将一些内容记录到数据库中 现在需要接近 10 毫秒 您将如何完成请求 然后在请求完成后进行某种处理 我尝试使用 Response Body Flush 但这