Net作业调度(二) -CrystalQuartz远程管理
介绍
上篇已经了解Quartz.NET的基本使用方法了。但如果想方便的知道某个作业执行情况,需要暂停,启动等操作行为,这时候就需要个Job管理的界面。
本文介绍Quartz.NET如何进行远程job管理,如图:
实战
一:作业服务端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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(); } |
1 2 3 4 5 6 7 | public class PrintMessageJob : IJob { public void Execute(IJobExecutionContext context) { Console.WriteLine( "Hello!" ); } } |
启动如下
二:作业远程管理端,无需写任何代码,引用官方程序集,嵌入到已有的web网站。
PM> Install-Package CrystalQuartz.Remote
Webconfig 需要配置的地方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <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管理界面
其他
CrystalQuartz 提供基础功能,可以继续在此基础上进行二次开发,另外推荐使用Window服务寄宿,比较方法。
参考资源
张善友 http://www.cnblogs.com/shanyou/archive/2012/01/15/2323011.html
CrystalQuartz开源的地址 https://github.com/guryanovev/CrystalQuartz
作者:蘑菇先生
出处: http://mushroom.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载。未经作者同意下,必须在文章页面明显标出原文链接及作者,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!
如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!
标签:
Quartz.Net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~