gpt4 book ai didi

windows-services - 使用一个 Windows 服务来执行作业,使用两个 Web 应用程序来安排作业

转载 作者:行者123 更新时间:2023-12-05 08:59:39 24 4
gpt4 key购买 nike

我有一个 SQL Server 数据库作为作业存储,两个都可以安排作业的 Web 应用程序,以及一个用于执行作业的 Quartz.NET Windows 服务。

我希望这两个 Web 应用程序只安排作业,而 Windows 服务只执行作业。

问题来了:

如果我在两个 Web 应用程序和 Windows 服务中创建 IScheduler 实例,它们将同时执行作业,可能会发生冲突。

如果我不在两个 Web 应用程序中创建 IScheduler 实例,我如何从 Web 应用程序将作业调度到 Windows 服务?

有没有办法让 IScheduler 只安排作业而不执行作业? (我可以将 IJob 程序集部署到所有这三个应用程序)

最佳答案

您可能不想在网站中实例化 IScheduler 实例,正是因为创建本地实例也会执行作业。

我已经实现了与您想要做的类似的东西。

首先,确保在您的服务配置文件 (app.config) 中配置了四个键 quartz.scheduler.exporter.typequartz.scheduler.exporter.portquartz.scheduler.exporter.bindNamequartz.scheduler.exporter.channelType

其次,确保您的 web.config 配置了以下四个键:quartz.scheduler.instanceNamequartz.scheduler.instanceIdquartz。 scheduler.proxyquartz.scheduler.proxy.address

然后,当您创建 StdSchedulerFactory() 并使用它来获取调度程序时,您并不是在实例化一个新的调度程序,而是附加到一个现有的调度程序。然后,您可以通过远程调度程序执行任何您可以使用本地调度程序执行的操作,但只有一个实例执行作业。

关于windows-services - 使用一个 Windows 服务来执行作业,使用两个 Web 应用程序来安排作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11968884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com