Como excluir seletivamente mensagens de uma fila AMQP (RabbitMQ)?
Gostaria de excluir seletivamente as mensagens de uma fila do AMQP sem sequer lê-las.
O cenário é o seguinte:
O lado de envio deseja expirar as mensagens do tipo X com base no fato de que novas informações do tipo X chegaram. Como é muito provável que o assinante ainda não tenha consumido a mensagem mais recente do tipo X, o editor deve excluir as mensagens anteriores do tipo X e colocar uma mais recente na fila. Toda a operação deve ser transparente para o assinante - na verdade, ele deve usar algo tão simples quanto o STOMP para receber as mensagens.
Como fazer isso usando o AMQP? Ou talvez seja mais conveniente em outro protocolo de mensagens?
Eu gostaria de evitar uma infraestrutura complicada. Toda a mensagem necessária é tão simples quanto acima: uma fila, um assinante, um editor, mas o editor deve ter a capacidade de excluir ad-hoc as mensagens para um determinado critério.
O cliente do editor usará o Ruby, mas na verdade eu lidaria com qualquer idioma assim que descobrir como fazê-lo no protocolo.