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"); }
我有这些MessageChannel
和PollerMetaData
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
插件。
-
在
@Poller
上使用@Poller
,你不需要PollerMetadata.DEFAULT_POLLER
。 如果你没有其他的轮询用户,当然,没有自己的轮询configuration。 -
尝试使用
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);
反应足够慢。 -
configuration
org.springframework.integration
类别的DEBUG
日志级别,并回到我们这里的一些日志!