假设我已经将Quartz.NET准备好作为Windows服务,并且它目前正在运行(使用在Sqlite上运行的ADOJobStore)。我需要在我的Windows应用程序中控制此服务,以便我可以停止它,启动它,添加和删除作业等。我该如何获取此调度程序的实例?
如果对您来说这听起来像一个简单的问题,那么很抱歉,因为Quartz.NET的文档似乎远远不够。只有少数人知道它,而他们已经有自己的生活。
更新:我的服务的quartz.config文件
我正在使用的程序代码以获取调度器:
如果对您来说这听起来像一个简单的问题,那么很抱歉,因为Quartz.NET的文档似乎远远不够。只有少数人知道它,而他们已经有自己的生活。
更新:我的服务的quartz.config文件
# You can configure your scheduler in either <quartz> configuration section
# or in quartz properties file
# Configuration section has precedence
quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz
quartz.threadPool.threadCount = 10
quartz.threadPool.threadPriority = Normal
# job initialization plugin handles our xml reading, without it defaults are used
quartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz
quartz.plugin.xml.fileNames = ~/quartz_jobs.xml
quartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartz
quartz.scheduler.exporter.port = 555
quartz.scheduler.exporter.bindName = QuartzScheduler
quartz.scheduler.exporter.channelType = tcp
quartz.scheduler.exporter.channelName = httpQuartz
我正在使用的程序代码以获取调度器:
NameValueCollection properties = new NameValueCollection();
properties["quartz.scheduler.instanceName"] = "RemoteClient";
// set thread pool info
properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
properties["quartz.threadPool.threadCount"] = "10";
properties["quartz.threadPool.threadPriority"] = "Normal";
// set remoting expoter
properties["quartz.scheduler.proxy"] = "true";
properties["quartz.scheduler.proxy.address"] = "tcp://127.0.0.1:555/QuartzScheduler";
ISchedulerFactory sf = new StdSchedulerFactory(properties);
IScheduler sched = sf.GetScheduler();
我的服务已安装并处于启动状态,它以“本地系统帐户”身份登录,并能够与桌面交互。