Net作业调度(二) -CrystalQuartz远程管理

 

Source Code-1.6M

 介绍

接着上一篇。 我们已经初步会使用Quartz.NET了。但如果想方便的知道某个作业执行情况,并暂停,启动等等,这时候就需要个管理界面了。

本文介绍Quartz.NET 远程管理。如图:

实战

一:作业服务端

 static void Main(string[] args)
        {
            var properties = new NameValueCollection();
            properties["quartz.scheduler.instanceName"] = "RemoteServerSchedulerClient";

            // 设置线程池
            properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
            properties["quartz.threadPool.threadCount"] = "5";
            properties["quartz.threadPool.threadPriority"] = "Normal";

            // 远程输出配置
            properties["quartz.scheduler.exporter.type"] = "Quartz.Simpl.RemotingSchedulerExporter, Quartz";
            properties["quartz.scheduler.exporter.port"] = "556";
            properties["quartz.scheduler.exporter.bindName"] = "QuartzScheduler";
            properties["quartz.scheduler.exporter.channelType"] = "tcp";

            var schedulerFactory = new StdSchedulerFactory(properties);
            var scheduler = schedulerFactory.GetScheduler();

            var job = JobBuilder.Create<PrintMessageJob>()
                .WithIdentity("myJob", "group1")
                .Build();

            var trigger = TriggerBuilder.Create()
                .WithIdentity("myJobTrigger", "group1")
                .StartNow()
                .WithCronSchedule("/10 * * ? * *")
                .Build();
            scheduler.ScheduleJob(job, trigger);
            scheduler.Start();

        }
 public class PrintMessageJob : IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            Console.WriteLine("Hello!");
        }
    }

启动如下

 

 

二:作业远程管理端,无需写任何代码。引用官方程序集,嵌入已有网站。 

      PM> Install-Package CrystalQuartz.Remote

      Webconfig 需要配置的地方

 

<configuration>  
	<crystalQuartz>
		<provider>
			<add property="Type" value="CrystalQuartz.Core.SchedulerProviders.RemoteSchedulerProvider, CrystalQuartz.Core" />
			<add property="SchedulerHost" value="tcp://127.0.0.1:556/QuartzScheduler" /> <!--TCP监听的地址-->
		</provider>

	</crystalQuartz>
<system.webServer>
      <!-- Handler拦截处理了,输出作业监控页面-->
        <handlers>
            <add name="CrystalQuartzPanel" verb="*" path="CrystalQuartzPanel.axd" type="CrystalQuartz.Web.PagesHandler, CrystalQuartz.Web" />
        </handlers>
    </system.webServer>
</configuration>

 Web管理界面

 

 

 

其他

1:为了方便,我直接拿官方项目用了。

2:CrystalQuartz 提供基础功能,你可以继续扩展开发。

3:推荐用 Window服务寄宿。

 

主要参考资源

李善友               http://www.cnblogs.com/shanyou/archive/2012/01/15/2323011.html

CrystalQuartz开源地址   https://github.com/guryanovev/CrystalQuartz

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。