美文网首页Golang
nsq源码(6) nsqd 通知消息完成

nsq源码(6) nsqd 通知消息完成

作者: Linrundong | 来源:发表于2019-01-21 17:56 被阅读3次

通知nsqd执行完成操作

  • 在客户端接收到消息并处理完成之后,按照协议会向nsqd 发送一个 "FIN" 命令通知nsqd,移除队列信息
func (p *protocolV2) FIN(client *clientV2, params [][]byte) ([]byte, error) {
    id, err := getMessageID(params[1])

    err = client.Channel.FinishMessage(client.ID, *id)

    client.FinishedMessage()
    return nil, nil
}

func (c *Channel) FinishMessage(clientID int64, id MessageID) error {
    // 移除缓存inFlightMessages
    msg, err := c.popInFlightMessage(clientID, id)
    
    // 移除超时队列inFlightPQ
    c.removeFromInFlightPQ(msg)
    
    return nil
}

相关文章

网友评论

    本文标题:nsq源码(6) nsqd 通知消息完成

    本文链接:https://www.haomeiwen.com/subject/pvqhjqtx.html