gpt4 book ai didi

c# - 启动长时间运行的后台任务 - 从 ASP.NET 或计划的作业

转载 作者:行者123 更新时间:2023-11-30 13:36:56 24 4
gpt4 key购买 nike

我有一个相当长的运行过程(几分钟),我需要大约每月运行一次 - 但不是固定的时间表,而是在用户点击 ASP.NET 中的 Go 之后网络表单 GUI 页面。

由于 ASP.NET 并不是为处理长时间运行的后台任务而设计的,我的想法是将其放入一个单独的控制台应用程序中。但是如何根据需要启动它呢?

如果我从我的 ASP.NET 页面的代码隐藏中使用 Process.Start(....) 会发生什么?我想避免阻塞整个 Web UI 20 分钟左右......而且:即使它不阻塞我的 UI,如果 ASP.NET 应用程序池在它仍然存在时回收,我长时间运行的任务会发生什么运行?

另一个想法是让一个频繁运行的作业(每 2 分钟运行一次)检查某种标志(例如是否存在某些数据库条目),如果需要,该作业将启动长时间运行的任务。

但同样的问题:如果我使用 Process.Start() 从作业中启动我的 20 分钟任务 - 这会阻止调用者吗?

将长时间运行的任务安排在一天五次似乎有点矫枉过正,因为它通常每月只运行一次 - 但与此同时,用户希望在合理的时间内获得结果(不到 1 小时,如果可能的话)在安排流程之后 - 所以我真的不能安排它在晚上运行一次......

最佳答案

Hangfire 正是您要找的。最好的部分是它带有一个内置的仪表板。

你可能需要在它上面写一些逻辑。

你可以在这里找到它。 http://hangfire.io/

enter image description here

enter image description here

关于c# - 启动长时间运行的后台任务 - 从 ASP.NET 或计划的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28109449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com