加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-services – 使用一个Windows服务执行作业,使用两个Web

发布时间:2020-12-13 20:38:26 所属栏目:Windows 来源:网络整理
导读:我有一个SQL Server数据库作为作业存储,两个Web应用程序都可以调度作业,还有一个Quartz.NET Windows服务来执行作业. 我希望两个Web应用程序只调度作业,而Windows服务只是为了执行作业. 问题出现了: 如果我在两个Web应用程序和Windows服务中创建IScheduler实
我有一个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()并使用它来获取调度程序时,您不是实例化新的调度程序,而是附加到现有的调度程序.然后,您可以通过远程调度程序执行任何操作,您可以使用本地操作系统执行任何操作,但只有一个实例可以执行作业.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读