我有一个QUARTZ JOB,每10分钟启动一次.
如果JOB未在10分钟内完成,则在接下来的第10分钟,另一个JOB将启动.
我想要的是:如果前一个JOB已经完成运行,则下一个JOB(每10分钟后)应该只启动.有什么办法吗?
在tomcat容器中开发基于SPRING的调度程序期间,我总是在取消部署webapp或shutdown服务器时获得此logoutput:
Apr 28, 2010 4:21:33 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Apr 28, 2010 4:21:33 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: A web application appears to have started a thread named [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1] but has failed to stop it. This is very likely to create a memory leak.
Apr 28, 2010 4:21:33 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: A web application appears to have started a thread named [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2] but has failed to stop it. This is very likely to create a memory leak. …Run Code Online (Sandbox Code Playgroud) 我有一个已安排的Quartz作业.我想更新与之关联的JobDataMap.如果我得到一个JobDataMap JobDataMap jobDataMap = scheduler.getJobDetail(....).getJobDataMap(),该地图是"实时"吗?即.如果我改变它,它会被保存在调度程序中吗?如果没有,我该如何坚持下去?
我有grails的石英作业,需要每5秒执行一次,但我需要按顺序执行.在某些情况下,作业的执行超过了这个5秒,在这种情况下,我不想在前一个执行没有完成时执行.如何在grails中配置?
(当然整个魔法可以使用静态易失性标志来完成,但这不是一种非常优雅的方式)(另外我如何配置作为单例的工作?)
谢谢
什么是批处理作业每天00hr运行的Quartz cron触发器表达式?
我准备在我们的一个项目中加入Quartz.在寻找免费用户界面来帮助我们监控其执行状态(工作等)时,我们发现了这篇文章:为什么你不应该使用石英
作者说Quartz即使对于简单的任务也很复杂(我倾向于同意......)并且提到Obsidian是一个更好的选择,其中包括一个开箱即用的优秀UI.实际上,那个UI在某种程度上比我为Quartz(JWatch)找到的最好的免费替代品更好.注意:作者为黑曜石工作......
谢谢,
我记得我们不能杀死当前正在运行的Quartz Job,但是我们可以中断并在必要时进行布尔检查,无论我们是否需要继续进行后续操作.
即使我们实现InterruptableJob并调用scheduler.interrupt来中断Job,当前执行的作业仍将在服务器中运行.
例如:
http://neopatel.blogspot.in/2011/05/quartz-stop-job.html http://forums.terracotta.org/forums/posts/list/3191.page
有人可以纠正我的理解并解释我如何杀死或阻止"当前"执行的工作?
谢谢,凯西尔
假设我有CronTriggerBean类似的
<bean id="midMonthCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="reminderJobDetail" />
<property name="cronExpression" value="0 0 6 15W * ?" />
</bean>
Run Code Online (Sandbox Code Playgroud)
测试这个bean实际上会在指定日期触发的最佳方法是什么,即在每个月的15号最接近的工作日上午6点?
更新:这应该是一个单元测试,所以我不会启动VM或更改系统时间.
我正在使用Quartz Scheduling,有2个工作.第一个作业执行约2分钟的任务,第二个作业是为临时文件的清洁操作设置.因此,我需要设置计划,以便在第一个作业执行/完成执行任务后,我需要在第二个作业的帮助下执行清理操作.
考虑示例9 - Quartz 2.1.x下的Job Listeners,它声明我们可以定义一个名为jobWasExecuted(_,_)的方法; 在Job Listener中,它在第一个作业执行/或进入运行状态时执行.
我们是否能够设置可以监听第一个作业然后执行第二个作业的计划?要么,
我们是否能够像在Java多线程中那样定义join()方法,它可以在完成第一个作业时执行?
我在集群模式下使用Quartz
由于过度调用导致数据库级别出现一些行锁争用:
org.quartz.jobStore.selectWithLockSQL
"SELECT*FROM QRTZ_LOCKS WHERE SCHED_NAME =:"SYS_B_0"AND LOCK_NAME =:1 FOR FORDDATE"
我读石英文档,但我仍然不清楚为什么执行上面的查询.
这个行锁的目的是什么?
问候
quartz-scheduler ×10
java ×6
spring ×3
scheduling ×2
grails ×1
jobs ×1
persistence ×1
tomcat ×1
unit-testing ×1
weblogic ×1