所以,我假设这与任何节点有关。js和活动MQ安装,但我使用的是带有节点的Amazon MQ。js Lambda。。。
有点像ActiveMQ上的noob,所以请纠正我的错误!
使用从队列读取消息后 stompit 我继续处理消息,然后通过HTTPS将其发送到另一台服务器。 在发送HTTPS帖子的过程中,会发生一些消息验证和丰富,当然,帖子本身可能会导致错误。
stompit
如果出现错误,我(最好)如何处理消息回滚:
1) 保持连接打开且不发送 client.ack() 直到我最终从远程服务器获得HTTP 200?
client.ack()
2) 将消息保存在变量中,并在出错时将其放回原处(顺序无关紧要?
3) 使用除跺脚以外的其他方法?
显然,使用STOMP是不可能的,所以我将代码改为使用库ampq10。
import amqp10 from 'amqp10'; const AMQPClient = amqp10.Client; const amqpClient = new AMQPClient({ receiverLink: { attach: { rcvSettleMode: amqp10.Constants.receiverSettleMode.settleOnDisposition }, creditQuantum: 1 } });
这将允许您执行 receiver.accept(message); 如果成功处理消息。如果你只是 .disconnect() 删除an .accept() 消息不会从队列中删除。
receiver.accept(message);
.disconnect()
.accept()