【问题标题】: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

    1. 允许注册现有的 Quartz.net 安装
    2. 允许查看作业和触发器
    3. 允许调度作业,包括编辑 JobDataMaps
    4. 允许查看日历
    5. 允许查看触发器触发时间
    6. 基于 Silverlight 的时间线显示即将到来的时间表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多