Quartz.net - 无法保存 JobGroup

问题描述

这是我的用例:

我有一个 .Net 核心 Windows 服务,它从 Oracle 作业存储中选择作业/触发器,并且工作正常。 我从 API 添加作业/触发器 - 这工作正常,但当我传递该作业组时它不会保存。

代码如下:

    var jobName = "TestJob112";
    var jobGroup = "10SECONDS";
    var jobDescription = "DataService";
    var triggerName = $"{jobName}_Trigger";
    var triggerGroup = $"{triggerName}Group";
    var cronExpression = "0/10 0/1 * 1/1 * ? *";

    var jobData = new JobDataMap();
    jobData.Add("LogUId",jobName);
    
    var jobKey = new JobKey(jobName,jobGroup);

    var jobDetails = JobBuilder.Create<QuartzJob>()
            .WithIdentity(jobName,jobGroup)
            //.WithIdentity(jobKey) //Tried this one too
            .WithDescription(jobDescription)
            .SetJobData(jobData)
            .StoreDurably()
            .Build();

    var triggerDetails = TriggerBuilder.Create()
            .WithIdentity(triggerName,triggerGroup)
            .WithSchedule(CronScheduleBuilder.CronSchedule(cronExpression))
            .ForJob(jobName)
            .Build();

    _quartzScheduler.ScheduleJob(jobDetails,triggerDetails);

我尝试了两种传递作业名称/组的方法

  1. 通过 .WithIdentity(jobName,jobGroup) 将这两个作为字符串传递
  2. 也试过这样的 JobKey .WithIdentity(jobKey)

由于某些奇怪的原因,当我传递 jobGroup 时,它没有将作业/触发器保存到数据库中。当我只传递 jobName 时它工作正常。

我有多个作业每 30 秒、1 分钟、5 分钟等运行一次。我想使用 jobGroup 对这些作业进行分组,但它不允许我保存它。

请帮忙!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...