如何在后台 c# mvc 运行 作业 (dll)
How to run a job (dll) in the background c# mvc
我编写了一个控制台应用程序,编译为一个 dll,最多可能需要六个小时才能 运行。
当我将 quartz 用于其他计划作业时,我有信心可以使用 quartz 将此过程安排到 运行。
但是,时间表将被硬编码。有没有办法通过我们的网站动态安排石英作业?
更重要的是,我还需要让客户可以随意选择运行这个过程。虽然我可以从网站调用 dll,但如果用户关闭浏览器,我需要将其设置为 运行。或者在后台以便用户可以继续执行其他任务。
我已经调查过 Hangfire,但它未获准用于我们的网络。
有什么建议吗?
您可以在 .net 核心中使用 Hosted service。它还支持长 运行 任务。
您可以使用此方法运行 .Net(非核心)中的任务
HostingEnvironment.QueueBackgroundWorkItem(_=> LongRunningMethod());
Return View();
如果您使用的是 .Net Core,请使用它并且不要等待任务完成。
Task.Run(() => LongRunningMethod());
Return View();
我编写了一个控制台应用程序,编译为一个 dll,最多可能需要六个小时才能 运行。
当我将 quartz 用于其他计划作业时,我有信心可以使用 quartz 将此过程安排到 运行。
但是,时间表将被硬编码。有没有办法通过我们的网站动态安排石英作业?
更重要的是,我还需要让客户可以随意选择运行这个过程。虽然我可以从网站调用 dll,但如果用户关闭浏览器,我需要将其设置为 运行。或者在后台以便用户可以继续执行其他任务。
我已经调查过 Hangfire,但它未获准用于我们的网络。
有什么建议吗?
您可以在 .net 核心中使用 Hosted service。它还支持长 运行 任务。
您可以使用此方法运行 .Net(非核心)中的任务
HostingEnvironment.QueueBackgroundWorkItem(_=> LongRunningMethod());
Return View();
如果您使用的是 .Net Core,请使用它并且不要等待任务完成。
Task.Run(() => LongRunningMethod());
Return View();