如何在后台 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();