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