草庐IT

Quartz-Scheduler

全部标签

java - 实例化要在 Quartz 调度程序中执行的作业时发生错误

packageorg.quartz;importorg.quartz.Scheduler;importorg.quartz.JobDetail;importorg.quartz.JobKey;importorg.quartz.Trigger;importorg.quartz.Job;importorg.quartz.JobExecutionContext;importorg.quartz.JobExecutionException;importorg.quartz.SchedulerException;importorg.quartz.impl.StdSchedulerFactory;

java - 如何在简单的 Java 应用程序中设置 quartz.config 文件?

如何在简单的Java应用程序中设置quartz.config文件?我想创建它并在我的项目中引用它,以便我可以配置线程等。谢谢 最佳答案 看看QuartzQuickStartGuide查看基本的quartz.properties文件是什么样的。这个文件必须放在你的类路径中,以便Quartz使用它。示例:org.quartz.scheduler.instanceName=MySchedulerorg.quartz.scheduler.instanceId=1org.quartz.scheduler.rmi.export=falseorg

java - 为什么 spring task scheduler 等待上一个任务完成?

我有以下任务调度程序设置:任务只打印一行并hibernate10秒。使用此设置,我的期望是任务将每5秒运行一次,而不管之前的任务是否已完成执行(即停止hibernate)。但事实并非如此,该任务每15秒运行一次(sleep时间,然后在下一次cron被命中时)。我如何配置它,使任务每5秒运行一次,而不管上一次执行是否完成? 最佳答案 在运行方法中放置@Async注释并查看@Asyncpublicvoidrun{}或者你可以试试这个然后是你的类(class)packagefoo.bar;publicclassTask{publicvoi

java quartz调度程序在特定时间运行

例如,我想写一个Java程序在每天凌晨12点打印“HelloWorld”,我该如何使用Quartz调度器来实现呢?Triggertrigger=TriggerUtils.makeDailyTrigger(0,0);trigger.setName("trigger1");trigger.setGroup("group1");像这样?我应该在哪里打印“helloworld”方法? 最佳答案 您可以使用表达式来安排作业的执行。例如:publicstaticclassHelloJobimplementsJob{@Overridepublic

java - 是否可以安排 Quartz 线程每秒运行一次?

是否有可能让JavaQuartz线程每秒运行一次,甚至以毫秒为单位运行?看起来他们只能按分钟运行,仅此而已。 最佳答案 是的,您可以让它们每秒运行一次。看看TriggerUtils.makeSecondlyTrigger:Makeatriggerthatwillfireeverysecond,indefinitely.或者使用CronTrigger:newCronTrigger("cronTrigger","group","*****?");//fireateveryseconddaily

java - 在自己的线程中运行每个 Spring Scheduler

我有多个带有@Scheduled注释的组件,我看到Spring一次只启动一个组件,即使它们被安排在同一时间运行也是如此。我的用例如下。我希望每个@Scheduled注释在其自己的线程中运行,但每个线程只运行一次。给定这个带有两个调度程序的伪代码:@Scheduled(cron="0*****")//runeveryminutepublicvoidmethodA(){log.info("RunningmethodA");executeLongRunningJob("FinishedmethodA");}@Scheduled(cron="0*****")//runeveryminutepu

java - Quartz StatefulJob/非StatefulJob

能否请您向我解释一下StatefulJob在quartz中的确切含义以及它与没有StatefulJob的区别? 最佳答案 StatefulJob接口(interface),提供2个东西,首先:任何时候只会运行一个作业第二:在(SimpleTriggerBean)中,您无需担心您的作业运行持续时间。这意味着下一次运行将在上一次运行结束后的延迟时间后完成。 关于java-QuartzStatefulJob/非StatefulJob,我们在StackOverflow上找到一个类似的问题:

java - 非托管线程 Spring Quartz Websphere Hibernate

看来我们使用Quartz-JDBCJobStore以及Spring、Hibernate和Websphere的实现正在抛出非托管线程。我读了一些书,发现了一篇来自IBM的技术文章,指出将Quartz与Spring一起使用会导致这种情况。他们建议使用CommnonJ来解决这个问题。我做了一些进一步的研究,到目前为止我看到的唯一例子都是处理不在数据库中的计划旧JobStore。所以,我想知道是否有人有解决此问题的示例。谢谢 最佳答案 我们有一个可行的解决方案(实际上有两个)。1)更改quartz源代码以将WorkManager守护线程用作

java - 将 Quartz 与 Spring 结合使用

在我的应用程序中,需要能够根据传入的请求类型(动态地)创建计划作业。我还可以使用Spring来创建和触发作业吗?如果是,怎么做?任何帮助都是有用的。 最佳答案 鉴于SchedulerFactoryBean公开了一个本地QuartzScheduler对象,您可以将其直接连接到您的Controller类中,然后使用Scheduler对象动态创建和注册触发器和作业。Spring本身不能用于动态创建的作业的调度,因为Spring的bean支持将用于静态配置的作业,但是原生的QuartzSchedulerAPI足够合理,可以单独使用(勉强)。

java - 中断 quartz 集群中的工作

我有一个包含多个实例的Quartz设置,我想在执行作业的任何地方中断它。正如文档中所说,Scheduler.interrupt()方法不是集群感知的,所以我正在寻找一些常见的做法来克服这种限制。 最佳答案 好吧,这里有一些您应该用来实现这一目标的基础知识。在集群模式下运行时,有关当前正在运行的作业的信息在quartz表中可用。例如,q_fired_triggers包含正在执行的作业。该表的第一列是负责它的调度程序名称。因此很容易知道谁在做什么。然后,如果您启用quartz实例org.quartz.scheduler.jmx.expo