简体   繁体   中英

Spring Integration - MongoDB inbound channel reading the same data

I need to Query the data from mongoDB using spring integration, I can able Query the data from MongoDB, but the same data is returned more than once,

<bean id="mongoDBFactory"
        class="org.springframework.data.mongodb.core.SimpleMongoDbFactory">
        <constructor-arg name="mongo">
            <bean class="com.mongodb.Mongo">
                <constructor-arg name="host" value="localhost" />
                <constructor-arg name="port" value="27017" />
            </bean>
        </constructor-arg>
        <constructor-arg name="databaseName" value="test" />
    </bean>

    <int:channel id="controlChannel"/>

    <int:control-bus input-channel="controlChannel"/>

    <int-mongodb:inbound-channel-adapter
        id="mongoInboundAdapter" channel="splittingChannel" auto-startup= "false" 
        query="{_id:1}" 
        collection-name="order" 
        mongodb-factory="mongoDBFactory">
        <int:poller fixed-rate="10000"  max-messages-per-poll="1000"/>
    </int-mongodb:inbound-channel-adapter>

    <int:splitter input-channel="splittingChannel" output-channel="logger"/>

    <int:logging-channel-adapter id="logger" level="WARN"/>

I am using the control channel to start and stop, please help me how can i stop the inbound-channel-adapter once the Query is completed.

Thanks in advance

I suggest you to use transaction-synchronization-factory to modify or remove documents instead of stopping Adapter. See Reference Manual for more info.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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