繁体   English   中英

如何配置 JBoss/Quartz 以运行 Spring 作业?

[英]How to configure JBoss/Quartz to run Spring job?

我是 JBoss 的新手,多年来一直在使用 tomcat。 我有一个 Spring 3.0.x 应用程序,我需要在其中定期运行作业。 过去,我会简单地将我的作业 class 创建为常规 POJO,然后将我的作业/触发器创建为 Spring 的 CronTriggerBean,并将 MethodInvokingJobDetailFactoryBean 作为我的 jobDetail。

前任:

  <bean id="session.manage.UserSessionPurgeAction.trigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
            <property name="cronExpression" value="0 */5 * * * ? *" />
            <property name="jobDetail">
                    <bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
                      <property name="name"><idref bean="session.manage.UserSessionPurgeAction" /></property>
                      <property name="group" value="cleanup" />
                            <property name="targetObject" ref="session.manage.UserSessionPurgeAction" />
                            <property name="targetMethod" value="execute" />
                            <property name="concurrent" value="false" />
                    </bean>
            </property>
    </bean>

On this new project, the system architect has called for running the Spring application under JBoss 6. I know that JBoss has a quartz scheduler built in, so I am not sure how to package/declare my job such that it is using JBoss' scheduler而不是像我过去所做的那样将其构建到应用程序中。

我在网上搜索过,但似乎找不到我需要的必要胶水信息。 我知道 javax.ejb 中有一个 @Schedule 注释,但这就是我需要添加到我的方法中的全部内容吗? 我会认为/期望我在某个地方需要额外的配置,但不确定在哪里。

谁能指出我正确的方向?

谢谢,

埃里克

如果您真的想使用 jboss 之一,我会尝试将传递给 SchedulerFactoryBean 的 schedulerName 属性与捆绑的调度程序之一匹配。 捆绑的调度程序可以通过 JNDI 检索,我认为它在 jndi 名称“Quartz”下。

看看 org.springframework.scheduling.quartz.SchedulerFactoryBean#createScheduler,它首先尝试在 static SchedulerRepository 中查找调度程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM