创建可轮询的消息源

时间:2016-04-28 16:36:24

标签: spring-integration

我正在尝试创建一个可轮询的消息源,我试图通过扩展MessageProducerSupport来做到这一点,但是我只能看到来自接收方法的消息一次并且没有成功使它成为可轮询的。 (根据我的轮询时间表,不会调用receive方法。)

我的代码段如下:

@Component
public class MyAdapter extends MessageProducerSupport {

    @Override
    protected void doStart() {
        receive();
    }

    public void receive() {
        System.out.println("polled at : "+   new Date());
        sendMessage(MessageBuilder.withPayload("Hello WOrld! "+ new Date()).build());
    }
}

我的applicationContext如下:

<context:component-scan base-package="com.mypackage" />
<context:annotation-config />

<bean id="pollerTaskExecutor" class="org.springframework.core.task.SyncTaskExecutor"/>

<int:inbound-channel-adapter ref="myAdapter" channel="output">
    <int:poller task-executor="pollerTaskExecutor">
        <int:interval-trigger interval="3000" fixed-rate="true" time-unit="MILLISECONDS"/>
    </int:poller>
</int:inbound-channel-adapter>

我想知道我错过了什么来使这个消息源可被调查。

1 个答案:

答案 0 :(得分:0)

您是对的:可轮询消息源是基于的。嗯......在org.springframework.integration.core.MessageSource上。

因此,要使其正常运行,您应该将MessageProducerSupport代码移至AbstractMessageSource实施。

查看Reference Manual中的更多信息。