Package com.bytedesk.kbase.llm_faq.mq
Class FaqIndexConsumer
java.lang.Object
com.bytedesk.kbase.llm_faq.mq.FaqIndexConsumer
FAQ索引消费者
用于处理FAQ索引队列中的消息
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final FaqElasticService
private final FaqRestService
private FaqVectorService
private final Random
-
Constructor Summary
ConstructorsConstructorDescriptionFaqIndexConsumer
(FaqElasticService faqElasticService, FaqRestService faqRestService) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
acknowledgeMessage
(jakarta.jms.Message message) 安全地确认消息 只有在消息处理成功后才调用此方法deleteFaqVector
(FaqEntity faq) 在完全独立事务中删除向量索引private void
handleDeleteOperation
(FaqEntity faq, FaqIndexMessage message) 处理删除操作 将全文索引和向量索引的删除操作分开处理private void
handleIndexOperation
(FaqEntity faq, FaqIndexMessage message) 处理索引操作 将全文索引和向量索引的操作分开处理,避免一个操作失败影响另一个操作processElasticDelete
(String faqUid) 在单独事务中处理全文索引删除void
在单独事务中处理全文索引void
processIndexMessage
(jakarta.jms.Message jmsMessage, FaqIndexMessage message) 处理FAQ索引队列中的消息 使用客户端确认模式,只有成功处理后才确认消息 增强了对乐观锁冲突的处理在单独事务中处理向量索引删除void
在单独事务中处理向量索引 删除向量索引后,更新实体状态
-
Field Details
-
faqElasticService
-
faqVectorService
-
faqRestService
-
random
-
-
Constructor Details
-
FaqIndexConsumer
-
-
Method Details
-
processIndexMessage
@JmsListener(destination="bytedesk.queue.faq.index", containerFactory="jmsArtemisQueueFactory", concurrency="3-10") public void processIndexMessage(jakarta.jms.Message jmsMessage, FaqIndexMessage message) 处理FAQ索引队列中的消息 使用客户端确认模式,只有成功处理后才确认消息 增强了对乐观锁冲突的处理- Parameters:
jmsMessage
- JMS原始消息message
- FAQ索引消息
-
handleIndexOperation
处理索引操作 将全文索引和向量索引的操作分开处理,避免一个操作失败影响另一个操作 -
processElasticIndex
在单独事务中处理全文索引 -
processVectorIndex
在单独事务中处理向量索引 删除向量索引后,更新实体状态 -
deleteFaqVector
在完全独立事务中删除向量索引 -
handleDeleteOperation
处理删除操作 将全文索引和向量索引的删除操作分开处理 -
processElasticDelete
在单独事务中处理全文索引删除 -
processVectorDelete
在单独事务中处理向量索引删除 -
acknowledgeMessage
private void acknowledgeMessage(jakarta.jms.Message message) 安全地确认消息 只有在消息处理成功后才调用此方法- Parameters:
message
- JMS消息
-