ConsumerTemplate:表示不应缓存接收端点,因为它是动态的

时间:2012-12-03 12:36:34

标签: grails groovy activemq apache-camel

我正在尝试设置一个使用动态端点(与this问题相关)执行ConsumerTemplate.receive的石英作业。

从我的谷歌搜索和源代码峰值,我看到ConsumerTemplate将尝试缓存我的端点,但由于它是动态的,可能导致OutOfMemoryException,并且在任何情况下都没有理由缓存动态端点。 (见http://mail-archives.apache.org/mod_mbox/camel-users/201003.mbox/%3C75bda7a01003222327i456bf92egd37e1d4868d06041@mail.gmail.com%3E

无论如何都指出ConsumerTemplate不应该缓存端点,也许是端点URI上的一个选项?我看到有一种方法可以全局设置缓存大小(https://cwiki.apache.org/confluence/display/CAMEL/How+do+I+configure+the+default+maximum+cache+size+for+ProducerCache+or+ProducerTemplate),但我认为我不想这样做,因为我有几个静态使用者可能会从缓存中受益。

1 个答案:

答案 0 :(得分:2)

您可以在CamelContext上的API中创建一个使用者模板,您可以在其中指定缓存限制。 http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/CamelContext.html#createConsumerTemplate(int)。