Spring Boot集成馈送由于不活动而hibernate

我用Spring Boot Integration做了一种定制的Rss Reader。 它每5秒读一次我的RSS源,如果有新项目,它会通过一些filter。 如果在过滤之后仍然存在,则将推送通知发送到我的智能手机。

它工作的很好,但是如果我的数据源上没有任何新的RSS项目几个小时(不确定多长时间),它不会触发了,当这些时间后,一个新的RSS条目出现。

我假设我的InboundChannelAdapter进入某种sleep模式。 有人知道确切的问题可能是什么?

我有一个InboundChannelAdapter读取我的RSS提要:

 @Bean @InboundChannelAdapter( value = "feedChannel", poller = @Poller(maxMessagesPerPoll = "100", fixedRate = "5000")) public FeedEntryMessageSource feedAdapter() throws MalformedURLException { Authenticator.setDefault(new Authenticator() { return new FeedEntryMessageSource(new URL("an url"), "feedChannel"); } 

我有这些MessageChannelPollerMetaData bean:

 @Bean public MessageChannel feedChannel() { return new QueueChannel(500); } @Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata poller() { PeriodicTrigger trigger = new PeriodicTrigger(10); trigger.setFixedRate(true); PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(trigger); return pollerMetadata; } 

还有一个接收RSS通知的MessageEndpoint

 @MessageEndpoint public static class Endpoint { private RestTemplate restTemplate = new RestTemplate(); private PushbulletConfig pushbulletConfig = new PushbulletConfig(); @ServiceActivator(inputChannel = "feedChannel") public void log(Message<SyndEntry> message) throws Exception { SyndEntry payload = message.getPayload(); //Do something with payload } } 

不知道是否相关,但是使用se.transmode.gradle:gradle-docker:1.2将.jar部署在se.transmode.gradle:gradle-docker:1.2容器中se.transmode.gradle:gradle-docker:1.2 gradle se.transmode.gradle:gradle-docker:1.2 gradle插件。

  1. @Poller上使用@Poller ,你不需要PollerMetadata.DEFAULT_POLLER 。 如果你没有其他的轮询用户,当然,没有自己的轮询configuration。

  2. 尝试使用fixedDelay而不是fixedRate 。 最后是这个逻辑:

     else if (this.fixedRate) { return new Date(triggerContext.lastScheduledExecutionTime().getTime() + this.period); } return new Date(triggerContext.lastCompletionTime().getTime() + this.period); 

    因此,几个线程可能会很忙。 特别是当feed = this.feedFetcher.retrieveFeed(this.feedUrl); 反应足够慢。

  3. configurationorg.springframework.integration类别的DEBUG日志级别,并回到我们这里的一些日志!