是否允许在 ASP.NET Core 控制器中使用 Task.Run?

2023-12-08

场景:我有一个带有“删除”ASP.NET Core 控制器操作的 Web 服务。该实现由两个步骤组成:第一步是便宜的,之后其他操作就不再可以看到已删除的数据,第二步是长时间运行的,它执行实际的删除。

可以用吗Task.Run对于第二个操作并且从不等待它并很快返回调用者?我知道该任务可能会由于应用程序关闭而丢失,但是否允许使用以下命令将工作卸载到后台Task.Run在 ASP.NET Core 中并且从不等待结果任务?


我知道该任务可能会由于应用程序关闭而丢失,但是否允许使用 ASP.NET Core 中的 Task.Run 将工作卸载到后台,并且从不等待生成的任务?

哦,当然,没有什么可以阻止这一点。 .NET 和 ASP.NET 允许您使用Task.Run,并且响应将立即返回给用户(假设您忽略从返回的任务Task.Run).

是否可以使用 Task.Run 进行第二个操作并且从不等待它并很快返回调用者?

您说您知道该任务可能会在应用程序关闭时丢失。确实如此;因此,第二次删除完全有可能永远不会发生,并且不会有错误或日志消息通知您这一事实。此外,由于该任务被忽略,因此如果该任务失败,将不会收到任何通知,因此,如果删除代码出现问题,则不会有任何日志或任何内容通知您常规失败。如果您对此表示同意,那么使用“即发即弃”就可以了。

在 ASP.NET Core 上,您甚至不需要Task.Run;您可以只调用执行第二个删除操作的(异步)方法,然后忽略该任务而不是awaiting it.

简单地忽略任务就可以了(有或没有Task.Run),但这确实有负面影响,即 ASP.NET 不知道卸载的工作at all。所以我会推荐注册任务并延迟应用程序关闭,直到任务有机会完成。通过注册,仍然有可能丢失任务,但是注册可以减少丢失任务的机会。

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

是否允许在 ASP.NET Core 控制器中使用 Task.Run? 的相关文章

随机推荐

  • 为什么我一直收到 .addEventListener is not a function? [复制]

    这个问题在这里已经有答案了 因此 我正在使用 JW Player 除了我正在开发的一项功能外 一切都运行良好 当我运行代码时 我收到控制台错误 未捕获的类型错误 upTop addEventListener 不是函数n 这是代码 var u
  • .NET Framework、CLR 和 Visual Studio 版本号如何相互关联?

    随着最近发布的 NET 4 0 和 Visual Studio 2010 跟踪哪些 NET Framework 版本基于哪个版本的 CLR 构建以及属于哪个版本的 Visual Studio 变得越来越困难 是否有一个明确的表格显示这些关系
  • 将值从 EditText 传递到 TextView

    我想从一个页面的 EditText 中获取值 并将该值显示到另一页面的 TextView 中 我怎样才能做到这一点 如何在 EditText 中存储值 请帮我 感谢您 当您提到 在不同页面上 时 您的意思是在新活动中 对吧 假设这就是您的意
  • 通过 cmd Nodejs 安装 Phonegap 问题 [windows 7]

    我正在尝试使用cmd安装phonegap npm install gphonegap 但它没有安装并给我安装失败消息我粘贴了下面的cmd消息 那么我如何设置代理设置 假设这就是问题 nodejs可以使用它来连接到互联网并完成phonegap
  • 如何使用 SqlCommand 参数指定选择查询的架构名称

    我们数据库中的架构名称是动态的 为什么以下不起作用 public void ReadVersion string connString string schemaName string selectCommand SELECT major
  • apache zeppelin 附加存储库导入

    如何在 zeppelin 中导入附加依赖项 我正在尝试在 apache zeppelin 中导入库 鞍座 但是 import org saddle
  • Ruby 中的 !~ 方法对 String 有何作用

    来自 sawa的回答 https stackoverflow com a 21892359 226255 什么是 do Example re d 0 0687987167581341 0 120311605902415 89 8399554
  • 定义具有相同名称的 git 别名以隐藏原始命令

    我试图使用与现有命令相同的别名作为别名 以便别名隐藏原始命令 防止我从工作树中删除文件 alias rm rm cached diff diff color 不幸的是 这不起作用 有人知道解决方法吗 谢谢 Edit环境color diff
  • 什么时候a>a为真?

    是的 我想我真的是在做梦 我在 AIX 机器上编译并运行了以下代码 AIX 3 5 PowerPC POWER5 processor type IBM XL C C for AIX V10 1 Version 10 01 0000 0003
  • ggplot2:使线上的点的颜色比线的颜色更深

    我想让图表上的每个点的颜色与线条不同 这是示例数据 df lt structure list yrmonth structure c 17167 17167 17167 17198 17198 17198 17226 17226 17226
  • 如何自定义平视通知布局?

    在我的项目中 需要更改平视通知布局 我定制了两个remoteView 一个用于Notification contentView 一个用于Notification bigContentView并成功了 当我想使用时Notification B
  • Git 对于 100,000 个对象来说确实很慢。有修复吗?

    我有一个 新鲜 的 git svn 存储库 11 13 GB 其中包含超过 100 000 个对象 我已经表演过 git fsck git gc 初次结账后在仓库上 然后我尝试做一个 git status 执行 git status 所需的
  • 覆盖文本文件上的特定行?

    如何在 c 中覆盖文本文件上的特定行 我有多个变量的值需要写入文件中 仅当新行的大小与旧行的大小相同时才有效 在 模式下打开文件a fseek 到文件的开头 在阅读下一行之前 请使用ftell 记下该行的开头 阅读该行 如果这是你想要的线路
  • UIView 隐藏/显示动画

    我的简单目标是淡出动画隐藏和显示功能 Button hidden YES 够简单的 然而 有可能让它淡出而不是消失吗 这样看起来相当不专业 在 iOS 4 及更高版本中 有一种方法只需使用 UIView 转换方法即可实现此目的 而无需导入
  • 使用 WinForms GeckoFX 控件从 C# 调用 javascript 函数的推荐方法是什么?

    问题说明了一切 我已经把所有东西都连接好了 并且知道如何将消息从浏览器 html 发送到 c 但不知道如何以其他方式发送消息 我应该能够做类似的事情 browserControl JSCall myFunction Dave Smith 以
  • iOS App提交的Bundle ID

    我的应用程序商店中已有一个应用程序 我想将新应用程序上传到应用程序商店 但它要求提供捆绑包 ID 我可以使用与第一个应用程序相同的 ID 还是每个新应用程序的新捆绑包 ID 谢谢你 您将需要创建一个新的捆绑包 ID 请参阅 Apple 文档
  • Xamarin.forms 中的垂直滑块?

    我正在尝试在 Xamarin forms 中实现垂直滑块 我知道我需要分别在 ios 和 android 中创建渲染类 对于 ios 我的渲染器似乎工作正常 对于 Android 我正在点击链接https forums xamarin co
  • git stash -- 删除未跟踪的文件

    今天在工作中 我的一位同事注意到 在提供文件路径的同时执行 git stash 会删除未跟踪的文件 git stash src 此命令会删除未跟踪的文件 并且在 stash pop 后不会恢复它们 然而 git 存储 这不 我对我来说就像一
  • 在 jqplot 中打开和关闭 pointLabels

    我正在尝试以编程方式打开和关闭 pointLabels 我认为它会像这样工作 var data 1 1 2 5 4 9 var graph jqplot id graph data series pointLabels show true
  • 是否允许在 ASP.NET Core 控制器中使用 Task.Run?

    场景 我有一个带有 删除 ASP NET Core 控制器操作的 Web 服务 该实现由两个步骤组成 第一步是便宜的 之后其他操作就不再可以看到已删除的数据 第二步是长时间运行的 它执行实际的删除 可以用吗Task Run对于第二个操作并且