在 ASP.NET 中使用线程是否存在任何不明显的危险?

2024-01-26

这是一个兄弟姐妹的问题这个程序员的问题 https://softwareengineering.stackexchange.com/questions/13711/servicing-background-tasks-on-a-large-site.

简而言之,我们正在考虑将一些依赖用户请求的工作“适当地”推入后台。链接的问题给了我很多想法,我们是否应该走服务路线,但并没有真正提供任何令人信服的论据来说明为什么我们应该走。

我承认,对我来说,做道德上等同的事情的能力

WorkQueue.Push(delegate(object context) { ... });

确实很引人注目,所以如果它只是有点困难(而不是本质上不可行),我倾向于采用后台线程方法。

因此,我知道的后台线程的问题(在应用程序池的上下文中):

  • They can die at any time due to the AppPool being recycled
    • 解决方案:跟踪任务何时执行,以便在需要新线程时可以重新运行*
  • The ThreadPool http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx is used to respond to incoming HTTP queries, so using it can starve IIS
    • 解决方案:建立我们自己的线程池,同时限制线程数量。

我的问题是,我错过了什么(如果有的话)?ASP.NET 中的后台线程还会出现什么问题?

* The task in questions are already safe to re-run, so this isn't a problem.
ǂ Assume we're not doing anything really dumb, like throwing exceptions in background threads.


我不会从 StackOverflow 的 IIS AppDomain 中启动线程。我没有任何确凿的证据来支持我要说的话,但是使用 IIS 10 年了,我知道当它是城里唯一的游戏时效果最好。

还有一个替代方案,我知道这将是一种采纳我的答案 https://softwareengineering.stackexchange.com/questions/13711/servicing-background-tasks-on-a-large-site/13732#13732在程序员线程上。但据我了解,您已经有了一个解决方案,可以根据用户请求进行工作。为什么不使用该代码,而只在调用特殊的内部 API 时才启动它。然后使用Task Scheduler打电话给CURL每 30 秒左右调用该 API 来启动任务的命令。通过这种方式,您可以让 IIS 处理线程,并且您的代码可以处理一些它已经可以轻松完成的事情。

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

在 ASP.NET 中使用线程是否存在任何不明显的危险? 的相关文章

  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 什么可以解释托管堆上超过 5,000,000 个 System.WeakReference 实例?

    我一直在针对生产 ASP NET Web 应用程序运行负载测试 并且看到在堆上创建了大量 System WeakReference 在大约 15 分钟内 负载管理堆内存已飙升至大约 3GB 并且我有大约 5 000 000 个对 Syste
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 线程睡眠和Windows服务

    我正在开发一个 Windows 服务 该服务存在一些问题Thread Sleep 所以我想我会尝试使用计时器 因为这个问题建议 在 Windows 服务中使用 Thread Sleep https stackoverflow com que
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 为什么 WebGL 比 Canvas 更快?

    如果两者都使用硬件加速 GPU 来执行代码 为什么 WebGL 比 Canvas 更快 我的意思是 我想知道为什么在低级别上 从代码到处理器的链条 会发生什么 Canvas WebGL 直接与驱动程序通信 然后与显卡通信 Canvas 速度
  • Android 联系人:查找键如何工作?

    在联系人顶部id 安卓也有LOOK UP https developer android com reference android provider ContactsContract ContactsColumns html LOOKUP
  • AttributeError:“str”对象没有属性“mean_validation_score”

    我的代码中出现此错误 AttributeError str object has no attribute mean validation score 我可以做什么来解决它 def report grid scores n top 3 to
  • 通过 hilt 中的不同具体类绑定接口?

    我用希尔特 我有一个接口 但我有两个实现它们的类 我需要在 ViewModels 中实现不同的 Bind 接口 请帮助我 创建自定义组件 或使用自定义范围 您提供的代码会有所帮助 但让我们假设 您的界面 interface YourInte
  • 如何将图标和文本段落放在一行中?

    我想将我的字体很棒的图标和文本段落放到一行中 我该如何修复此代码 div class date style display inline block i class fa fa user o i p style display inline
  • Maven 3 - 值得吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 是否有可能获得一个 .xib 窗口到选项卡式故事板

    我没有很长时间编写代码 Xcode 所以我有点垃圾 基本上我已经创建了一个 xib 并希望它出现在故事 板中 但我真的不知道从哪里开始 因为我有一个 xib 窗口具有UITableView and UIPickerView其中所有代码在 x
  • 将带标签的 pandas DF 写入 influxdb

    我有这个 3526 rows x 5 columns DF 其中col0是时间 col1 col3是标签和col4是我的价值 0 1 2 3 4 0 2017 09 29 22 41 51 10 2 95 5 C1195 LF470 SAR
  • JavaScript通过点击改变当前元素的颜色

    我有一个关于仅更改当前元素的颜色的问题 所以我想通过每次点击来更改当前元素的背景颜色 我的问题是 我无法重置前一个元素的背景颜色 例如 我这里有两种背景颜色 黄色 浅蓝色 如果我单击 旧 div 和 新 div 则两个 div 的背景颜色变
  • 将代码字符串转换为 hive 中的 desc

    这里我们有一个连字符的字符串 例如0 1 3 并且长度不固定 hive 中还有一个 DETAIL 表来解释每个代码的含义 DETAIL code desc 0 AAA 1 BBB 2 CCC 3 DDD 现在我们需要一个 hive 查询来将
  • 如何从 DIV 重定向并绕过子锚点 href

    请我需要您的帮助来完成下面的代码 我想向整个 DIV 添加 onclick 事件以重定向到 url 但我无法绕过 DIV 内子锚点中包含的 href 即 目标是点击图像或文本上的任意位置重定向到 google com div div a h
  • 未找到带有 SQLalchemy 数据库的 PostgreSQL

    我使用以下代码使用 sqlalchemy 创建 postgresql 数据库 engine create engine postgresql psycopg2 postgres localhost testData Base metadat
  • 对于自动返回类型,使用哪种更好: decltype 或 std::common_type<>::type (如果可能)?

    作为对我的回答最后一个问题 https stackoverflow com questions 11052842 error with using decltype in c11 creating opaque error message
  • 爱尔兰 Eircode 验证

    我想知道是否有验证爱尔兰 Eircode 格式的最佳实践 到目前为止 我在 JavaScript 中使用 REGEX 的最佳尝试是基于第 11 页上的官方规范here https www eircode ie docs default so
  • Apache Poi excel 删除空白行

    我有一个 3000 行的 Excel 文件 我删除了2000 使用ms excel应用程序 但是当我从代码中调用sheet getLastRowNum 时 它给了我3000 而不是1000 我如何删除空白行 我尝试了来自的代码here ht
  • IIS 7 Cors Ajax Soap 请求

    我遇到了一个无法解决的问题 我有一些 js jquery POST Soap 通过 PHP 请求代码在 Apache 上工作 启用了 Cors 来调用 HTTPS 并且工作正常 我已经迁移到 IIS7 设置响应标头 Access Contr
  • 在 PowerShell 中使用另一个扩展 JSON

    是否有一些简单的方法可以将一个 JSON 文件扩展为另一个文件 并使用 PowerShell 将输出保存到另一个文件 目前我正在尝试编写一个允许我做到这一点的循环函数 但也许有一个更简单的解决方案 迭代转换为 JSON 的属性PSCusto
  • 角度 Ui 树递增是重复的

    我的笨蛋 https plnkr co edit dlG6bJcBP8jaxhVEZ4wq p preview 在 My plunker 中 如果我添加一些子记录 那么如果我删除其中一个子记录 那么如果我添加行 则行会重复 scope ne
  • 将数据从 Android 发送到 PHP 服务器

    我在 android 中有一个应用程序 我想通过 url like mydata php lat 76867 long 87979 我有 php 代码 如果点击此 url 则将数据保存在数据库中 我所不知道的是如何通过我的android手机
  • 在 ASP.NET 中使用线程是否存在任何不明显的危险?

    这是一个兄弟姐妹的问题这个程序员的问题 https softwareengineering stackexchange com questions 13711 servicing background tasks on a large si