标签: quartz-scheduler

Quartz Scheduler多久会被唤醒一次?

我正在使用Quartz Scheduling,更具体地说是一个cron触发器设置为在每周的每天晚上10点唤醒.

我接口的另一个小组是询问调度程序在一天中醒来检查是否需要运行作业的次数.10PM作业是唯一配置的作业.我认为它只会在那个时候醒来.

我查看了文档,但没有看到任何内容.如果有人知道我在文档中提到的地方,我很想知道.

谢谢.

quartz-scheduler crontrigger

4
推荐指数
1
解决办法
2327
查看次数

如何设置石英触发器的优先级?

我正在使用Quartz Scheduler,有15个工作.每个工作都有一个触发器.我想为每个触发器设置优先级.我可以将低优先级设置为10,将高优先级设置为1.但由于我有15个作业的15个触发器,因此每个触发器需要不同的优先级.例如,trigger1将具有优先级10,trigger2将具有优先级9.这样,我需要为两个触发器赋予相同的优先级.

因此,如果两个具有相同优先级的触发器将同时执行,那么哪个触发器将首先执行?

谁能告诉我如何为不同的触发器设置不同的优先级?

scheduler quartz-scheduler

4
推荐指数
2
解决办法
4822
查看次数

侦听更改java的文件夹

有没有办法在java中使用Quartz api来监听文件夹或特定目录?如果可能的话,如果你有代码.请分享

java listener quartz-scheduler

4
推荐指数
1
解决办法
1470
查看次数

无法在Quartz Scheduler中获取作业列表

我正在尝试获取在Quartz调度程序中为特定组注册的所有作业.这是我的一段代码

CustomSchdularFactory.getSchedulerInstance().getJobKeys(groupEquals(group));
Run Code Online (Sandbox Code Playgroud)

group是一个String变量,其中包含要获取其关联作业的组的名称.使用上面的代码我得到以下错误

The method getJobKeys(GroupMatcher<JobKey>) in the type Scheduler is not applicable for the arguments (GroupMatcher<Key<Key<T>>>)
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会出现这个错误,因为我从Quartz官方文档中获取了参考

ListJobs

java quartz-scheduler

4
推荐指数
1
解决办法
6952
查看次数

使用Quartz每30天进行一次月度工作

伙计们,

我有用户安排的月度工作(使用Quartz).用户提供开始日期f或第一个要运行的作业,它可以是1-31个月的任何一天

我的问题是如何使用cron触发器安排此操作,记住并非所有月份都有31,30,29天.在这种情况下,作业应该在最接近的一个月中运行.所以,让我们说四月只有30天,所以工作必须在4月30日运行.

可以使用单个cron触发器完成吗?或者它应该是触发器的组合?我尝试使用CronExpression来查看它如何处理这种情况:

CronExpression ce = new CronExpression("0 0 0 30 JAN-DEC ? *");
Date nextValidTime = ce.getNextValidTimeAfter(//**27th of February**//);
Run Code Online (Sandbox Code Playgroud)

我的nextValidTime等于3月30日,所以cron只是"跳过"2月.任何帮助将受到高度赞赏.提前致谢.

java jobs triggers quartz-scheduler

4
推荐指数
1
解决办法
5201
查看次数

石英从多天失火中恢复过来

我是第一次尝试设置Quartz,如果我不理解某些东西,请原谅我.我想知道实现以下目标的最佳方法是什么:

如何设置必须运行每日电子邮件报告的作业,并且还能够从错过的触发器中恢复,以便:1)作业知道触发器被触发的日期.2)如果(上帝保佑)服务器停机3天,Quartz将通过连续运行三个错过的日子来恢复,同时通知作业每个工作代表什么日期.(执行顺序并不重要,只要我知道每个代表什么日子)

现在我正在做:

Trigger trigger = newTrigger() 
.withIdentity("dailyTrigger", "scheduledReportEmail") 
.startNow() 
.withSchedule(dailyAtHourAndMinute(0, 5) .withMisfireHandlingInstructionFireAndProceed()) 
.build(); 
Run Code Online (Sandbox Code Playgroud)

无论多少天错过,这似乎只能通过运行一次恢复.那是对的吗?

我想到的一种方法基本上是设置31个每日触发器,第1-31天.笨拙......以及2月份可能会发生多少天?这是最好的方法吗?

我也有每周和每月的触发器来处理,但我想如果我们停下来三周,那么我们有更大的事情要担心:)

谢谢你的建议....

java quartz-scheduler

4
推荐指数
1
解决办法
3734
查看次数

Quartz JobDetail缺少方法

我有一个依赖于Quartz 1.6.4版本的应用程序.我将Quartz升级到2.1.6,然后出现编译错误:

JobDetail类已更改为新版本中的接口,并且不再支持getGroup()方法.

我怎么解决这个问题?

java quartz-scheduler

4
推荐指数
1
解决办法
743
查看次数

使用特定的开始,结束日期和时间限制运行Quartz Scheduler作业

我正在使用Quartz-Scheduler进行重复性任务,但我遇到了麻烦.在我的服务器端我的用户需要指定一些日期范围一样 2013-09-27 09:00 AM - 12:00 PM 2013-09-30

说明:

运行从工作2013-09-272013-09-30,但只之间09:00 AM - 12:00 PM

我在为它编写Cron表达式时遇到了麻烦,而且我的用户是非技术性的,因此我的用户希望我从两个时间戳值自动创建Cron表达式.

请帮帮我.如果还有其他方法,请告诉我.

我在谷歌上看过很多资源,但我仍然找不到任何东西.

链接:

http://quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger

http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-05

unix/linux中的cron表达式是否允许指定确切的开始和结束日期

更新

我写了一个,但它不起作用

|------------------------------------------------------------------|
| Seconds | Minutes | Hours | DayOfMonth | Month | DayOfWeek | Year|
|         |         |       |            |       |           |     |
|   0     |    0    | 9-12  |   27-30    |   9   |     ?     | 2013|
|------------------------------------------------------------------|
Run Code Online (Sandbox Code Playgroud)

试图映射2013-09-272013-09-30但只在两者之间09:00 AM - 12:00 PM

更新 …

java cron quartz-scheduler

4
推荐指数
1
解决办法
2万
查看次数

Quartz异常处理

我有以下石英工作.我用它做了一些测试.

public void execute(JobExecutionContext context) throws JobExecutionException {
    try {

        Object result = callable.call();

    } catch (Exception e) {
        JobExecutionException e2 = new JobExecutionException(e);
        if (REFIRE_IMMEDIATELY.equals(policy)) {
            e2.setRefireImmediately(true);
        } else if (UNSCHEDULE_ALL_TRIGGERS.equals(policy)) {
            e2.setUnscheduleAllTriggers(true);
        } else {
            e2.setUnscheduleFiringTrigger(true);
        }
        throw e2;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我无法完全理解之间有什么区别 .不幸的是,没有Javadoc.setUnscheduleAllTriggers setUnscheduleFiringTrigger

有人可以帮助我吗?

谢谢

java exception quartz-scheduler

4
推荐指数
1
解决办法
4004
查看次数

如何在CronTrigger中更改cron表达式(quartz 2.2,spring 4.1)

我有点陷入迁移到最新的石英2.2和弹簧4.1 ......这是一个cron触发器,为了清晰起见我省略了工作和其他绒毛:

...
       <bean id="timeSyncTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
         <property name="jobDetail" ref="timeSyncJob"/>
         <property name="startDelay" value="10000"/>
         <property name="cronExpression" value="0 0 1 * * ? *"/>
       </bean>
...
Run Code Online (Sandbox Code Playgroud)

现在,我需要在运行时更改其cronExpression,并不像我想象的那么简单.我不能引用bean并更改属性,因为它的工厂提供了CronTrigger接口,而接口又不再具有setCronExpression方法,它已变为不可变.之前我可以简单地从上下文中取出一个触发器并设置其新的cron表达式.多年来它一直运作良好,直到升级变得不可避免.

那么,我们今天如何完成这项简单的任务呢?文件和版本完全丢失..提前感谢!

java cron spring quartz-scheduler

4
推荐指数
2
解决办法
1万
查看次数