Tag: quartz scheduler

在集群环境中使用Quartz

我希望在我的应用程序中使用quartz调度程序,因为我有一个集群环境,并且希望保证每小时只运行一个我的作业实例。 我的问题是……我是否必须使用JDBC作业存储或作业数据的某种“外部”存储来保证我的集群中只有一个实例在任何给定的时间运行该作业,或者对Quartz来说是否有更多魔力我知道吗?

石英多次执行后,Java Excel POI停止

我想对此有一些见解。 我有一个程序,可以从数据库读取和写入excel文件。 它的执行基于使用Quartz api的计时器,并在每周的每周二触发。 问题是,当我通过安排它每小时执行一次作业来测试它时,程序在编写excel文件的过程中几次执行后突然停止。 这是我写的excel代码。 try { FileInputStream file = new FileInputStream(excelFile); POIFSFileSystem myFileSystem = new POIFSFileSystem(file); HSSFWorkbook workbook = new HSSFWorkbook(myFileSystem); HSSFSheet worksheet = workbook.getSheetAt(0); this.cellStyle00 = workbook.createCellStyle(); HSSFDataFormat df = workbook.createDataFormat(); this.cellStyle00.setDataFormat(df.getFormat(“00”)); for(int i = 0;i<Access.size();i++){ AccessorMethods SetGet = (AccessorMethods) InstlibAccessor.get(i); HSSFRow row = worksheet.createRow(worksheet.getPhysicalNumberOfRows()); HSSFCell cell = row.createCell(0); cell.setCellValue(new Double(SetGet.getOne())); cell.setCellStyle(cellStyle00); […]

JavaQuartz作业持久性

我对Java Quartz不熟悉,我们只是使用了每天安排的测试工作。 对于我们的Struts2 web应用程序,我们希望运行一些在一天中不同时间安排的日常工作。 作业应处于持久性状态,这样即使由于服务器关闭/应用程序失败而导致作业失败,它们也应在服务器启动后重新执行。 我也可以将作业的状态/结果存储在DB中,以便监视作业。 任何的意见都将会有帮助。 – 谢谢

从Spring 3迁移到Spring 4 – org.springframework.scheduling.quartz.CronTriggerBean

我正试图从春季3.0.5迁移到4.1.X春季。 Spring 3的Class命名为“org.springframework.scheduling.quartz.CronTriggerBean” 但是Spring 4不包含这个类名。 [5/28/15 20:10:16:798 EDT] 00000092 ClassPathXmlA W org.springframework.context.support.AbstractApplicationContext __refresh在上下文初始化期间遇到exception – 取消刷新尝试org.springframework.beans.factory.CannotLoadBeanClassException:找不到类[org.springframework.scheduling.quartz.CronTriggerBean]用于在类路径资源[config / spring / WxsCacheContext.xml]中定义的名称为’beanIdName’的bean; 嵌套exception是org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1328)中的java.lang.ClassNotFoundException:org.springframework.scheduling.quartz.CronTriggerBean 我尝试了类似“弹簧支持”的替代方案,它具有相同的类别。 但没有运气。 得到那个jar子之后,它给出了关于石英的错误 [5/28/15 15:37:02:665 EDT] 0000006e SystemOut O ERROR(?:?) – java.lang.Exception:SpringUtils.getSpringBean(hostnameVerifierSetter)中的Bean错误消息:无法初始化组定义。 组资源名[classpath *:beanRefFactory.xml],工厂密钥[beanContext]; 嵌套exception是org.springframework.beans.factory.BeanCreationException:在URL [file:/ C:/ Program%20Files%20(x86)/ IBM / WebSphere / AppServer / profiles / AppSrv01 /中定义的名称为’beanContext’的bean创建时出错installedApps / cellName / Project.ear / configurations / […]

Quartz Thread Execution并行还是顺序?

我们有一个基于石英的调度程序应用程序,每分钟运行大约1000个作业,这些作业在每分钟的几秒钟内均匀分布,即每秒大约16-17个作业。 理想情况下,这些16-17个作业应该同时触发,但是我们的第一个语句(简单地记录执行时间)的作业执行方法被称为很晚。 例如,假设我们从05:00到05:04每分钟安排1000个工作。 因此,理想情况下,计划在05:03:50的作业应该在05:03:50记录执行方法的第一个语句,但是,它是在大约05:06:38进行的。 我已经跟踪了预定作业所花费的时间,大约需要15-20毫秒。 这个预定的作业足够快,因为我们只是在ActiveMQ队列上发送消息。 我们已经指定石英的线程数为100,甚至尝试将其增加到200或更多,但没有增益。 我们注意到的另一件事是来自调度程序的日志在前1分钟后即将连续发生 [Quartz_Worker_28] .. .. [Quartz_Worker_29] .. .. [Quartz_Worker_30] .. .. 因此它表明,经过一段时间石英运行线程几乎是顺序的。 可能是由于将作业完成通知持久性存储(在这种情况下是一个单独的postgres数据库)和/或上下文切换所花费的时间。 这种奇怪行为背后的原因是什么? 编辑:更详细的日志 [06/07/12 10:08:37:192][QuartzScheduler_Worker-34][INFO] org.quartz.plugins.history.LoggingTriggerHistoryPlugin – Trigger [] fired job [] scheduled at: 06-07-2012 10:08:33.458, next scheduled at: 06-07-2012 10:34:53.000 [06/07/12 10:08:37:192][QuartzScheduler_Worker-34][INFO] .scheduler.quartz.ScheduledLocateJob – execute begin——— ScheduledLocateJob with key: started at Fri Jul 06 10:08:37 EDT […]

Quartz Scheduler突然停止运行,没有exception错误

我有一些石英工作,每天晚上7点运行。 突然间它无法运行。 我检查我的server.log并没有抛出任何exception。 任何人都知道可能是什么问题? 提前致谢

Quartz Scheduler:在每个集群节点上触发一些作业,每个集群只触发一些作业

我在集群环境中使用Quartz Scheduler作为Spring bean。 我有一些使用@NotConcurrent注释的作业,它们每个集群运行一次(即仅在一个节点中,仅在一个线程中)。 现在我需要在集群的每个节点上运行一个作业。 我删除了@NotConcurrent注释,但它只在一台机器上的每个线程上运行。 它不会在其他节点上被触发。 我应该用什么来诠释这份工作? 示例:Job1 NotConcurrent annotated安排在午夜=>它每隔午夜只在一台机器上触发。 Job2注释安排在午夜=>它每隔午夜在每台机器上启动。 谢谢。

Java内存不足exception

我在Tomcat中运行Java Web应用程序。 该应用程序使用Quartz框架定期调度cron作业。 这个cron工作涉及解析4+ MB xml文件,我正在使用JDOM API。 xml文件包含大约3600个要解析的节点,因此要在DB中更新数据,我按顺序执行此操作。 在解析了几乎一半的文件后,我的应用程序抛出了内存不足exception。 堆栈跟踪是: Exception in thread “ContainerBackgroundProcessor[StandardEngine[Catalina]]” java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOfRange(Arrays.java:3210) at java.lang.String.(String.java:216) at java.lang.StringBuffer.toString(StringBuffer.java:585) at org.netbeans.lib.profiler.server.ProfilerRuntimeMemory.traceVMObjectAlloc(ProfilerRuntimeMemory.java:170) at java.lang.Throwable.getStackTraceElement(Native Method) at java.lang.Throwable.getOurStackTrace(Throwable.java:590) at java.lang.Throwable.getStackTrace(Throwable.java:582) at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:155) at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:135) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1603) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590) at java.lang.Thread.run(Thread.java:619) Exception in thread “*** JFluid Monitor thread ***” java.lang.OutOfMemoryError: Java […]

Spring 3 + Quartz 2错误

当我使用Quartz 2的Spring 3时,我收到了以下错误。有谁知道原因? 错误: Exception in thread “main” org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.scheduling.quartz.JobDetailBean] for bean with name ‘job’ defined in class path resource [beans.xml]: problem with class file or dependent class; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.JobDetailBean has interface org.quartz.JobDetail as super class at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1253) Spring配置文件: public class ExampleJob extends QuartzJobBean { private int timeout; […]

如何扩展Quartz调度程序?

我计划使用Quartz调度程序,因为我阅读了许多关于它的好意见。 我的问题如下:在任何给定时间,我将有数千个触发器存在于系统中。 大多数触发器只触发一个事件而死亡。 此外,我很可能在分配后取消许多工作(基于新输入)。 石英可以扩展到这个吗? 建议使用哪个JobStore? 我打算在mysql上使用JDBC。 补充信息 :我的工作将通过HTTP发送电子邮件或将数据发布到其他服务(通过WAN)。