当前位置: 首页 > 知识库问答 >
问题:

Quartz Scheduler:如何将作业分组在一起?

龙才俊
2023-03-14

我想问是否有人有同样的问题与石英调度器。我使用Trigger和JobKeys创建了作业,在这些作业中设置了groupnames。但当我打印出已设置的组时,它总是默认的。

如何设置此groupname以最终能够将作业分组在一起,最重要的是只取消指定的组?使用类似于下面这样的代码:

public void unscheduleByGroupname(String groupName) throws SchedulerException {
    for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
        scheduler.unscheduleJob(new TriggerKey(jobKey.getName(), jobKey.getGroup()));
    }
}
    TriggerKey tKey = new TriggerKey("Trigger:" + jobName + "-Somename:" + object.toString(),
            "Group:" + jobName + "-Somename:" + object.toString());
    JobKey jKey = new JobKey("Job:" + jobName + "-Somename:" + object.toString(),
            "Group:" + jobName + "-Somename:" + object.toString());
    JobDetail job = JobBuilder.newJob(Somename.class).withDescription("Somename")
            .withIdentity(jKey).build();
    Trigger trigger = TriggerBuilder.newTrigger().forJob(jKey).startAt(new Date()).withIdentity(tKey).build();
for (String groupName : scheduler.getJobGroupNames()) {
        for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {

            String jobName = jobKey.getName();
            String jobGroup = jobKey.getGroup();

            // get job's trigger
            List<Trigger> triggers = (List<Trigger>) scheduler.getTriggersOfJob(jobKey);
            Date nextFireTime = triggers.get(0).getNextFireTime();
            System.out.println("[jobName] : " + jobName + " [groupName] : " + jobGroup + " - " + nextFireTime);}

输出:

[jobName] : Job:-Somename:13 [groupName] : DEFAULT - Tue Jul 19 13:48:40 CEST 2016
[jobName] : Job:-Somename:14 [groupName] : DEFAULT - Tue Jul 19 13:49:11 CEST 2016
[jobName] : Job:-Somename:15 [groupName] : DEFAULT - Tue Jul 19 13:49:41 CEST 2016
[jobName] : Job:-Somename:16 [groupName] : DEFAULT - Tue Jul 19 13:50:11 CEST 2016

共有1个答案

勾俊
2023-03-14

查看职务标识时,可以添加组信息。我将如下所示的方法链接起来,并且它对我起作用(我可以看到组是我设置的所需名称):

JobDetail job = JobBuilder.newJob(ScheduledJob.class)
            .withIdentity("JOB KEY", "GROUP NAME")
            .withDescription("Job description")
            .usingJobData(dataMap)
            .build();
 类似资料:
  • 问题内容: 有没有一种快速的方法来将一个数组的值组合为另一个数组的键? 输入: 预期产量: 我该怎么办? 问题答案: 会完全按照您的意愿做。 引用手册: 通过将keys数组中的值用作键,并将values数组中的值用作对应值来创建数组。 对于您的情况,您必须执行以下操作: 当然,您也可以使用各种循环组合来做到这一点,这可能是最简单的解决方案。

  • 问题内容: Python newb …我有一份要整理成同一月份和年份的字典列表: 我想要得到的是这样的字典列表: 这是我的代码,它只是打印一个空列表: 问题答案: 首先,我将对数据1进行排序: 然后,我将用来进行分组: 现在,要获得所需的输出: 1您的数据实际上已经在这方面进行了排序,因此您可以跳过此步骤。

  • 问题内容: 我从日志文件中获取了一些数据,想按分钟对条目进行分组: df: 我尝试了以下选项: 级别太高,想要汇总。 失败失败。 工作正常,并返回一个对象进行进一步处理,例如: grouped.Source.value_counts() 2012-01-01 12:30:00 source1 1 2012-01-01 12:31:00 source2 2 source1 2 2012-01-01

  • 问题内容: 由于数组中的equals函数仅检查实例,因此它不适用于Set。因此,我想知道如何在Java中制作一组数组? 一种可能的方法是将每个数组放在一个对象中,并为该类实现equals函数,但这会降低性能吗? 问题答案: 由于ArrayList类已经包装了一个数组,因此您可以扩展它并覆盖and 方法。这是一个示例: 更新: 您甚至可以重写它以用于一般用途,只需将代码更改为:

  • 我是RabbitMQ新手,我使用教程尝试了RabbitMQ示例https://www.rabbitmq.com/getstarted.html. 有人能解释一下如何按设置发布消息,而不是一次发布一条消息吗?此外,如何订阅消息从队列作为一个集合,而不是单一的消息一次。 也就是说,我们如何在RabbitMQ中实现发布和使用队列消息作为作业集? 提前谢谢。

  • 问题内容: 我在表“ 示例* ” 中有一个列名称“ 父级” 和“ 子级” ,以下是表数据 * 如果我将输入设为 100,那么 我应该得到的结果为 100,101,102,103。 由于 100- > 101-> 102-> 103 ,而且如果我将输入设为 102, 则它也将得到与上述相同的结果。 102- > 101-> 100和102-> 103 。我只需要使用存储过程来实现此目的。 以下是我正