É possível visualizar o conteúdo da mensagem RabbitMQ diretamente da linha de comando?
sudo rabbitmqctl list_queues
lista as filas.
Existe algum comando como sudo rabbitmqctl list_queue_messages <queue_name>
?
rabbitmq
rabbitmqctl
rabbitmqadmin
Tesoura de jardim
fonte
fonte
Respostas:
Você deve habilitar o plugin de gerenciamento.
Veja aqui:
http://www.rabbitmq.com/plugins.html
E aqui para os detalhes de gestão.
http://www.rabbitmq.com/management.html
Finalmente, uma vez configurado, você precisará seguir as instruções abaixo para instalar e usar a ferramenta rabbitmqadmin. Que pode ser usado para interagir totalmente com o sistema. http://www.rabbitmq.com/management-cli.html
Por exemplo:
lhe dará a primeira mensagem fora da fila.
fonte
requeue=false
e fazerrabbitmqadmin get queue=<QueueName>
Aqui estão os comandos que uso para obter o conteúdo da fila:
RabbitMQ versão 3.1.5 no Fedora linux usando https://www.rabbitmq.com/management-cli.html
Aqui estão minhas trocas:
Aqui está minha fila:
Enfie alguns itens na minha fila:
RabbitMQ ver mensagens na fila:
fonte
sudo python rabbitmqadmin get queue=myqueue requeue=true count=10
para ver as mensagens ou retirar da fila as mensagens do final e, em seguida, recolocá-las na frente. Existe uma maneira de apenas ver as mensagens em vez de retirá-las da fila.rabbitmqadmin
conectar à API baseada na web, o sudo é necessário aqui?requeue=True
Eu escrevi rabbitmq-dump-queue que permite despejar mensagens de uma fila RabbitMQ para arquivos locais e enfileirar novamente as mensagens em sua ordem original.
Exemplo de uso (para despejar as primeiras 50 mensagens da fila
incoming_1
):fonte
você pode usar a API RabbitMQ para obter contagens ou mensagens:
Receba mensagens de uma fila. (Este não é um HTTP GET, pois irá alterar o estado da fila.) Você deve postar um corpo parecido com:
contagem controla o número máximo de mensagens a serem obtidas. Você pode receber menos mensagens do que isso se a fila não puder fornecê-las imediatamente.
requeue determina se as mensagens serão removidas da fila. Se a recolocação for verdadeira, eles serão recolocados na fila - mas o sinalizador de reenvio será definido. a codificação deve ser "auto" (nesse caso, a carga útil será retornada como uma string se for UTF-8 válido e codificada em base64 de outra forma) ou "base64" (nesse caso, a carga útil será sempre codificada em base64). Se truncar estiver presente, ele truncará a carga útil da mensagem se for maior que o tamanho fornecido (em bytes). truncar é opcional; todas as outras chaves são obrigatórias.
Observe que os caminhos de publicação / obtenção na API HTTP destinam-se a injetar mensagens de teste, diagnósticos, etc. - eles não implementam entrega confiável e, portanto, devem ser tratados como uma ferramenta de administrador de sistema, em vez de uma API geral para mensagens.
http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_1_3/priv/www/api/index.html
fonte
um pouco tarde para isso, mas sim rabbitmq tem um rastreador integrado que permite que você veja as mensagens de entrada em um log. Quando ativado, você pode apenas
tail -f /var/tmp/rabbitmq-tracing/.log
(no mac) assistir as mensagens.a descrição detalhada está aqui http://www.mikeobrien.net/blog/tracing-rabbitmq-messages
fonte
Se você quiser várias mensagens de uma fila, digamos 10 mensagens, o comando a ser usado é:
Se você não quiser que as mensagens sejam colocadas na fila, basta alterar
ackmode
paraack_requeue_false
.fonte