如何在spring集成中使用poller触发器int-jpa:inbound-channel-adapter使得触发器在DB中保持不变

时间:2016-04-25 00:01:59

标签: spring triggers integration quartz-scheduler poller

我有弹簧集成入站适配器,工作正常,下面。我还在集群模式下设置Quartz(因此在触发器/调度程序中保留)。对于扩展org.quartz.Job类的Job,它也可以正常工作。我试图使int-jpa:inbound-channel-adapter中的轮询器处于群集模式,这样即使它在多个节点中部署,也只有其中一个正在运行。我有了为serviceactivator这样做的想法,但我不知道如何为我使用int-jpa:inbound-channel-adapter的方案做这个。我使用的是spring 4和Quartz 2.

<int-jpa:inbound-channel-adapter
    id="inboundChannelAdapterIIDDataJpa"
    channel="inboundChannelAdapterOne"
    entity-manager="entityManager"
    jpa-query="select g from House g"
    expect-single-result="false"
    delete-after-poll="false">
    <int:poller fixed-rate="50000"> 
        <int:transactional propagation="REQUIRED"
            transaction-manager="transactionManager" />
    </int:poller>
</int-jpa:inbound-channel-adapter>

我试图将poller(上面)替换为 和 然后像这样定义cron;

 <bean id="mytrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="cronExpression" value="0 0/5 * * * ?" />
    <property name="jobDetail" ref="inboundChannelAdapterIIDDataJpa" />
</bean>

这里jobDetail引用适配器ID。然后有&#34; mytrigger&#34;在调度程序中

<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="mytrigger" />
        </list>
    </property>
</bean>

但它不起作用。我正在寻找解决方案,使触发器可以处于集群模式,在石英表中保留触发信息。

0 个答案:

没有答案