如何获取 Quartz.Server.exe 来运行我的 ASP.NET 作业

本文关键字:运行 我的 ASP 作业 NET exe Server 何获取 获取 Quartz | 更新日期: 2023-09-27 18:34:05

我有一个生成文档的 ASP.NET 网站。每个文档都需要一段时间才能生成,并且有许多文档请求,因此我正在探索使用 Quartz.NET 来帮助池化请求的想法,通过重新启动保留它们,并将它们交付给用户以获得更好的体验。

Quartz.Server.exe包含在下载中,它似乎是运行 Quartz 作业的守护程序,即使前端未运行也是如此。这显然非常适合像我这样的网络场景。

主要问题是Quartz.Server.exe无法实例化我提供的作业类型。

Could not load file or assembly 'quartztest01' or one of its dependencies. The system cannot find the file specified. --

这是有道理的,因为我的程序集 quartztest01 不在 GAC 中,Quartz.Server.exe对我的程序集一无所知。但是当我试图解决这个问题时,提出了很多问题。

  1. 我不希望在 GAC 中进行我的组装。我怎样才能做到这一点?使用对我的程序集的引用重新生成Quartz.Server.exe
  2. 我甚至采取了正确的方法吗?前端和Quartz.Server.exe使用相同的数据存储,并配置为群集,但我偏执地认为它会运行。
  3. Quartz.Server.exe甚至用于生产用途吗?它似乎创建了一个示例作业,对我来说,这表明它只是作为一个例子。我应该修改这个 exe 以满足我自己的需求吗?
  4. 将 Quartz.NET 安装为合法的 Windows 服务而不是此控制台应用程序的最佳方法是什么?

如何获取 Quartz.Server.exe 来运行我的 ASP.NET 作业

  1. 您不必在 GAC 中安装。只需确保您的程序集与石英位于同一文件夹中.dll或者框架可以使用查找程序集的常用技术找到它。
  2. 是的,让 UI 充当客户端是很常见的,因此它必须指向同一存储。不常见的是将调度程序设置为群集,除非 UI 也将充当服务器。
  3. 是的。Quartz.Server.exe install 将其作为服务安装。
  4. @James评论中的链接就是答案。

FWIW,由于 IIS 管理 Web 应用程序生命周期的方式,将 Quartz.net 安装为服务通常比将其嵌入到 ASP.Net Web 应用程序中更好的解决方案。

只需将您的程序集放在与服务器 exe 相同的目录中,它应该可以正常加载。 您也可以使用 probePath,但可能不需要这样做。