- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取在 JBoss Seam 2.2.0.GA 中运行的 Quartz 调度程序的简单示例。使用 RAMJobStore 设置一切正常,但将商店从
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
到
org.quartz.jobStore.class org.quartz.impl.jdbcjobstore.JobStoreCMT
org.quartz.jobStore.driverDelegateClass org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.jobStore.useProperties false
org.quartz.jobStore.dataSource quartzDatasource
## FIXME Should be a different datasource for the non managed connection.
org.quartz.jobStore.nonManagedTXDataSource quartzDatasource
org.quartz.jobStore.tablePrefix qrtz_
org.quartz.dataSource.quartzDatasource.jndiURL java:/quartzDatasource
允许调度程序启动,但是作业之前被触发并以正确的时间间隔运行,现在它根本不运行。 quartz 数据库中也没有任何内容。
我知道 nonManagedTXDataSource 不应该与托管数据源相同,但我遇到了 Quartz 无法找到数据源的问题,即使之前有一条消息报告它被成功绑定(bind)(这可能会在一个单独的问题中被问到)。使用相同的数据源可以使服务无错误地启动。
我的 components.xml 文件包含以下内容:
<event type="org.jboss.seam.postInitialization">
<action execute="#{asyncResultMapper.scheduleTimer}"/>
</event>
<async:quartz-dispatcher/>
并且 ASyncResultMapper 具有以下内容:
@In
ScheduleProcessor processor;
private String text = "ahoy";
private QuartzTriggerHandle quartzTriggerHandle;
public void scheduleTimer() {
String cronString = "* * * * * ?";
quartzTriggerHandle = processor.createQuartzTimer(new Date(), cronString, text);
}
和ScheduleProcessor如下:
@Name("processor")
@AutoCreate
@Startup
@Scope(ScopeType.APPLICATION)
public class ScheduleProcessor {
@Asynchronous
public QuartzTriggerHandle createQuartzTimer(@Expiration Date when, @IntervalCron String interval, String text) {
process(when, interval, text);
return null;
}
private void process(Date when, String interval, String text) {
System.out.println("when = " + when);
System.out.println("interval = " + interval);
System.out.println("text = " + text);
}
}
日志显示服务已启动,但与作业无关:
INFO [QuartzScheduler] Quartz Scheduler v.1.5.2 created.
INFO [JobStoreCMT] Using db table-based data access locking (synchronization).
INFO [JobStoreCMT] Removed 0 Volatile Trigger(s).
INFO [JobStoreCMT] Removed 0 Volatile Job(s).
INFO [JobStoreCMT] JobStoreCMT initialized.
INFO [JobStoreCMT] Freed 0 triggers from 'acquired' / 'blocked' state.
INFO [JobStoreCMT] Recovering 0 jobs that were in-progress at the time of the last shut-down.
INFO [JobStoreCMT] Recovery complete.
INFO [JobStoreCMT] Removed 0 'complete' triggers.
INFO [JobStoreCMT] Removed 0 stale fired job entries.
INFO [QuartzScheduler] Scheduler FlibScheduler$_NON_CLUSTERED started.
我敢肯定这可能是我遗漏的一些微不足道的事情,但我无法在任何地方的论坛中找到解决方案。
最佳答案
最后我自己解决了这个问题。 JobStoreCMT 版本未启动和触发作业的问题是由于缺少 @Transactional(感谢 tair),更重要的是需要升级 Quartz。一旦 Quartz 升级到 1.8.5,错误消息就变得更有用了。
关于java - 如何从 RAMJobStore 迁移到 JobStoreCMT,以便在 Seam 中持久化 Quartz 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7697706/
我找到了这个答案: 1. Quartz 需要数据源的长答案,但是,如果您想要更深入的答案,我相信我需要深入研究源代码或做更多研究: 一种。 JobStoreCMT 依赖于由使用 Quartz 的应用程
我正在尝试通过以下代码在 Quartz 中使用 JDBC Job Store: DateTime dt = new DateTime().plusHours(2); JobDetail jobDeta
我正在尝试获取在 JBoss Seam 2.2.0.GA 中运行的 Quartz 调度程序的简单示例。使用 RAMJobStore 设置一切正常,但将商店从 org.quartz.jobStore.c
在 JobStoreTX、JobStoreCMT 和 RAMJobStore 中显示了在 Seam 2 中使用 Quartz 的示例。 我们的项目需要保留作业以便我们可以进行集群,但我无法让 JobS
我是一名优秀的程序员,十分优秀!