当前位置: 首页 > 知识库问答 >
问题:

获取正在Windows服务上运行的计划程序的实例

邓德惠
2023-03-14
# 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();

共有1个答案

巴洲
2023-03-14

您的服务可以通过修改配置文件来公开计划程序:

<add key="quartz.scheduler.exporter.type" value="Quartz.Simpl.RemotingSchedulerExporter, Quartz" />
<add key="quartz.scheduler.exporter.port" value="555" />
<add key="quartz.scheduler.exporter.bindName" value="QuartzScheduler" />
<add key="quartz.scheduler.exporter.channelType" value="tcp" />
<add key="quartz.scheduler.exporter.channelName" value="httpQuartz" />

然后,您的Windows应用程序可以使用适当的设置访问它:

        //you can put these in a config file too.
        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"] = "5";
        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();

Quartz.NET master包含文档中找不到的非常好的示例。

 类似资料:
  • 在我的生产服务器 (Windows 服务器 2012) 上,我安排了各种任务。我已经启用了任务计划程序历史记录,但它没有用。LastRunResult 我的每个任务都显示“上次运行的任务已由用户终止”,这意味着经过身份验证的程序已终止此任务。但是没有配置这样的程序可以停止所有这些任务。由于这个任务没有得到完成 1.我怎么能跟踪哪个程序/任务导致这种情况?这些计划任务之间存在巨大的时间差,那么问题可

  • 我正在使用 Windows 服务器 2016 数据中心。每当服务器重新启动时,我在任务计划程序中的计划任务总是停止运行。只有在我手动进入应用程序并重新键入我的用户帐户密码后,它才会再次开始工作。这是设置还是条件问题?

  • 我很想知道任务计划程序如何结束正在运行的任务。我已将一个应用程序添加到任务计划程序作业中,并且它接缝类似于在任务计划程序中为我的作业按 end 时(从任务计划程序启动它后),任务被窗口杀死(没有在我的应用程序中收到或消息)。我也没有找到一种方法来配置我希望如何在任务计划程序中关闭我的任务。我的目标是处理任务计划程序发送的消息(如果有)并很好地关闭我的应用程序。

  • 我有一个批处理(*. bat)文件,触发一个Python脚本,这个脚本需要大约25分钟来完成交互式(通过命令提示符手动)。这个批处理文件需要每天早上运行。 当我尝试在Windows任务调度器上将其设置为计划任务并在那里运行时,所用的时间几乎是交互时的两倍。即使我在xml中将优先级设置从默认的7设置为4(更高的优先级),也没有任何区别。更改优先级设置仅适用于I/O优先级,但不适用于内存优先级,内存优

  • 我们有一个程序,客户声称文件没有在应该生成的时候生成,只是在一天中很晚才出现。 我想知道这是否是因为任务调度程序的安排。 任务计划在每天下午12:23开始,然后无限期地每5分钟执行一次。 考虑到日程安排,并将其设置为每天运行,在00:00:00-12:23:00的时间内会发生什么? 前一天的日程是否因为“无限期”的设定而一直运行到第二天? 或者,由于任务设置为每天运行,前一天的计划是否在00:00

  • 问题内容: 我需要每天在特定时间在Linux服务器上运行一段Java代码。 目前,我正在Ubuntu桌面上对其进行测试,方法是从终端运行它,并按要求正常运行。为了进行调度,我从这里开始使用库。 在实际服务器上,将其作为进程运行的正确方法是什么? 我的意思是,在桌面上,我从终端运行指定接近当前时间的代码,第一次对其进行测试,然后将其停止(^ Z)。 在服务器上将它推送到后台是正确的方法吗?我相信必须