【问题标题】:Get all jobs in Quartz.NET 3.0获取 Quartz.NET 3.0 中的所有工作
【发布时间】:2019-09-08 22:58:22
【问题描述】:

我的作业运行正常,但我需要从另一个应用程序中列出这些作业。我使用的是 Quartz 3.0.7 版

我使用了以下代码:

        var collJobGroups = await pScheduler.GetJobGroupNames();

但它不返回任何东西。 这一个:

        StdSchedulerFactory factory = new StdSchedulerFactory(System.Configuration.ConfigurationManager.AppSettings);
        IScheduler scheduler = await factory.GetScheduler();
        await scheduler.Start();

        IReadOnlyCollection<string> jgn = await scheduler.GetJobGroupNames(new System.Threading.CancellationToken());

【问题讨论】:

  • 但我需要从另一个应用程序中列出这些,我认为这是不可能的。 Quartz 不是在内存中注册作业吗?
  • 我正在从一个 asp.net MVC 应用程序注册,但它没有列出作业。
  • 哦,它的网络应用程序?然后您可以创建一个端点以允许其他应用程序查询您的应用程序。我相信您可以使用tGet all jobs in Quartz.NET 2.0 中解释的方法获取当前已注册的工作。如果 api 没有改变,那就是。
  • Bagus Tesa ,如果我正是从那里开始的,没有任何回报。我的工作运行正常。

标签: c# quartz


【解决方案1】:

如果两个应用程序都可以访问同一个数据库,那么我建议您查看 ADO.NET Job Store 而不是 RAMJobStore。当您将数据库用作作业存储时,您可以在一个应用程序中运行调度程序,并且您可以通过另一个应用程序读取作业信息。 唯一的问题是您需要在单独的类库中实现作业,因为您需要访问类才能创建 JobDetails。

【讨论】:

  • msestak,显然你的意思是挂火,但我使用 Quartz.NET 3.0。你能访问这个数据库吗?
  • Quartz.NET 3 也可以配置为使用像 HangFire 这样的数据库。检查programmingkeys.blogspot.com/2018/02/…。因此,如果两个应用共享相同的配置,则第二个应用可以读取作业和触发器。
猜你喜欢
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
  • 2020-10-11
相关资源
最近更新 更多