簡體   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