- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SQL Server 数据库作为作业存储,两个都可以安排作业的 Web 应用程序,以及一个用于执行作业的 Quartz.NET Windows 服务。
我希望这两个 Web 应用程序只安排作业,而 Windows 服务只执行作业。
问题来了:
如果我在两个 Web 应用程序和 Windows 服务中创建 IScheduler 实例,它们将同时执行作业,可能会发生冲突。
如果我不在两个 Web 应用程序中创建 IScheduler 实例,我如何从 Web 应用程序将作业调度到 Windows 服务?
有没有办法让 IScheduler 只安排作业而不执行作业? (我可以将 IJob 程序集部署到所有这三个应用程序)
最佳答案
您可能不想在网站中实例化 IScheduler 实例,正是因为创建本地实例也会执行作业。
我已经实现了与您想要做的类似的东西。
首先,确保在您的服务配置文件 (app.config) 中配置了四个键 quartz.scheduler.exporter.type
、quartz.scheduler.exporter.port
、quartz.scheduler.exporter.bindName
和 quartz.scheduler.exporter.channelType
。
其次,确保您的 web.config 配置了以下四个键:quartz.scheduler.instanceName
、quartz.scheduler.instanceId
、quartz。 scheduler.proxy
和 quartz.scheduler.proxy.address
。
然后,当您创建 StdSchedulerFactory()
并使用它来获取调度程序时,您并不是在实例化一个新的调度程序,而是附加到一个现有的调度程序。然后,您可以通过远程调度程序执行任何您可以使用本地调度程序执行的操作,但只有一个实例执行作业。
关于windows-services - 使用一个 Windows 服务来执行作业,使用两个 Web 应用程序来安排作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11968884/
我是一名优秀的程序员,十分优秀!