【问题标题】:How to get details of all scheduled jobs and triggers in Quartz.NET c#如何在 Quartz.NET c# 中获取所有计划作业和触发器的详细信息
【发布时间】:2011-07-15 06:18:28
【问题描述】:
我必须创建所有计划作业和触发器的管理页面。如何获取 Quartz.NET 中正在运行的作业和触发器的详细信息?我可以暂停/停止或更新作业吗?有示例代码吗?
【问题讨论】:
-
-
-
然后您将基本上创建ISchedulerFactory 的实例,然后您可以使用它来获取所有当前调度程序的列表,您可以从中发现任何作业和触发器。如果你在哪里使用数据库存储,你可以直接读取表格,我觉得这更容易:)
-
标签:
c#
quartz-scheduler
quartz.net
【解决方案1】:
下面是使用 StdSchedulerFactory 的方法
ISchedulerFactory schedFact = new StdSchedulerFactory();
foreach (IScheduler scheduler in schedFact.AllSchedulers)
{
var scheduler1 = scheduler;
foreach (var jobDetail in from jobGroupName in scheduler1.JobGroupNames
from jobName in scheduler1.GetJobNames(jobGroupName)
select scheduler1.GetJobDetail(jobName, jobGroupName))
{
//Get props about job from jobDetail
}
foreach (var triggerDetail in from triggerGroupName in scheduler1.TriggerGroupNames
from triggerName in scheduler1.GetTriggerNames(triggerGroupName)
select scheduler1.GetTrigger(triggerName, triggerGroupName))
{
//Get props about trigger from triggerDetail
}
}
【解决方案2】:
这是一个执行此操作的开放项目。
该项目应该包含您自己创建所需的所有代码,或者您可以只使用开源项目。
Web Based admin page for Quartz.net
- 允许注册现有的 Quartz.net 安装
- 允许查看作业和触发器
- 允许调度作业,包括编辑 JobDataMaps
- 允许查看日历
- 允许查看触发器触发时间
- 基于 Silverlight 的时间线显示即将到来的时间表