1

我刚开始使用 Quartz.net,并将它作为服务运行。我创建了一个 Job 并将生成的 .dll 移动到 Quartz 文件夹,并在 jobs.xml 文件中添加了一个新条目,以每 3 秒启动一次。

我更新了作业 .dll,但 Quartz 正在使用它(或被锁定)。

是否可以在不重新启动 Quartz 服务的情况下更新 .dll?如果没有停止/启动 Quartz 服务,长时间运行的工作会发生什么情况?

4

1 回答 1

3

您无法在不重新启动服务的情况下更新作业 dll。服务器启动后,它会加载作业 dll,并且加载的类型会保留在内存中。这就是 .NET 运行时的工作方式。要实现动态重新加载等功能,您需要使用以编程方式创建的应用程序域等。

如果您停止调度程序,您可以传递一个布尔参数是否首先等待作业完成。这样你就可以安全地完成作业,并且在调度程序关闭的同时不会产生新的作业。

于 2010-07-31T09:13:50.663 回答