【问题标题】:For how long does Quartz run in the background when hosted on IIS (ASP.NET)?托管在 IIS (ASP.NET) 上时,Quartz 在后台运行多长时间?
【发布时间】:2016-06-21 06:46:06
【问题描述】:

我有一个 ASP.NET 网站,我正在使用 Quartz 做一些后台工作。 Quartz 作业设置为每 5 分钟触发一次。

威尔石英:

  1. 在最后一个用户离开后继续在后台运行 网站?
  2. 在某个时间点停止,并在新用户进入网站时继续?

如果答案是 #2,有没有办法让作业一直运行?

【问题讨论】:

    标签: asp.net quartz.net


    【解决方案1】:

    在某些时候,在一段时间不活动之后,您的 IIS 托管应用程序将陷入某种“睡眠模式”之王。从此刻起,您的触发器将不再启动作业,直到您的应用被尝试访问它的用户重新激活。

    这里有一些可供您使用的解决方案:

    • 在单独的 Windows 服务中运行您的作业。需要一些重构工作,但显然是最安全的解决方案

    • Hangfire 是另一个 .Net 后台作业库。这是他们提供给用户以解决此问题的链接,Making ASP.NET application always running。请注意,您需要完全控制您的托管环境才能实现这一目标。

    • 您可以将某些服务设置为Pingdom,以防止您的网站陷入这种“睡眠模式”。 但是,我不推荐这种解决方案。

    请注意,您的应用进入“睡眠模式”所需的时间可能会从一个环境更改为另一个环境。如果在您的情况下它需要超过 5 分钟(每个工作之间的时间),这个过程可能足以让您的网站保持正常运行。事实上,它可以作为解决方案 #3(使用外部服务频繁地戳你的环境)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 2011-06-25
      相关资源
      最近更新 更多