182.2. 从端点消耗
使用 JPA consumer 端点的消息会删除(或更新)数据库中的实体 Bean。这可让您将数据库表用作逻辑队列:消费者从队列中获取消息,然后删除/更新它们,以将其从队列中删除。
如果您不想在处理实体 bean 时删除它(并在路由完成后),您可以在 URI 中指定 consumeDelete=false。这会导致每个轮询处理实体。
如果您改为对实体执行一些更新以将其标记为已处理(例如,将其从将来的查询中排除),然后您可以使用 @Consumed 注解方法,当实体 bean 在被处理时(以及完成路由时)将在您的实体 bean 上调用它。
从 Camel 2.13 开始,您可以使用 @PreConsumed,在被处理前,将在实体 bean 上调用它(之前路由)。
如果您消耗了很多行(100K+),且遇到 OutOfMemory 问题,您应该将 maximumResults 设置为 sensible 值。