【问题标题】:How to run a job (dll) in the background c# mvc如何在后台运行作业(dll) c# mvc
【发布时间】:2021-10-05 08:58:10
【问题描述】:

我编写了一个控制台应用程序,编译为一个 dll,可能需要长达六个小时才能运行。

当我将石英用于其他计划作业时,我有信心可以使用石英安排此过程按计划运行。

但是,时间表将被硬编码。有没有办法通过我们的网站动态安排石英作业?

更重要的是,我还需要让客户可以随意选择运行这个流程。虽然我可以从网站调用 dll,但如果用户关闭浏览器,我需要它运行。或者在后台,以便用户可以继续执行其他任务。

我已经研究了 Hangfire,但它没有被我们的网络批准。

有什么建议吗?

【问题讨论】:

    标签: c# .net model-view-controller dll console-application


    【解决方案1】:

    您可以使用此方法在.Net(非核心)中运行任务

    HostingEnvironment.QueueBackgroundWorkItem(_=> LongRunningMethod());
    Return View();
    

    如果您使用的是 .Net Core,请使用它并且不要等待任务完成。

    Task.Run(() => LongRunningMethod());
    Return View(); 
    

    【讨论】:

    • 谢谢。我会调查的!
    • 我有这个工作,在一定程度上。我遇到的问题是我的流程可以运行长达六个小时。我无法更改 IIS 的空闲超时属性。还有其他建议吗?
    【解决方案2】:

    您可以在 .net 核心中使用 Hosted service。它还支持长时间运行的任务。

    【讨论】:

    • 谢谢。我会调查的!
    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 2017-05-23
    • 2011-06-17
    • 2015-03-29
    • 1970-01-01
    • 2021-12-23
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多