码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2014-11-01 19:08:49      阅读:1183      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   ar   使用   sp   div   on   

 

Source Code-1.6M

 介绍

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

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

bubuko.com,布布扣

实战

一:作业服务端

 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!");
        }
    }

启动如下

bubuko.com,布布扣

 

 

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

      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管理界面

bubuko.com,布布扣

 

 

 

其他

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

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

3:推荐用 Window服务寄宿。

 

主要参考资源

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

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

 

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

标签:blog   http   io   os   ar   使用   sp   div   on   

原文地址:http://www.cnblogs.com/mushroom/p/4067558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!