Listen: um acionador, vários handlers
Distribua uma única notificação.
Listen: um acionador, vários handlers é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.
Um evento, várias reações
Às vezes, uma alteração deve acionar vários manipuladores ao mesmo tempo. A palavra-chave listen permite que vários manipuladores se inscrevam em um único tópico.
Notifique um tópico, não um nome
Com listen, o notify de uma tarefa aponta para um nome de evento lógico, em vez do título de um manipulador específico.
- name: Update certs
ansible.builtin.copy:
src: site.pem
dest: /etc/ssl/site.pem
notify: restart web stackOs manipuladores se inscrevem com listen
Cada manipulador adiciona uma linha listen que nomeia o mesmo tópico. Todo manipulador que estiver ouvindo esse tópico será acionado quando ele for notificado.
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted
listen: restart web stackVários manipuladores, um tópico
Atribua o mesmo valor a listen em vários manipuladores e uma única notificação será distribuída a todos eles. É ótimo para reinícios agrupados.
- name: Restart php-fpm
ansible.builtin.service:
name: php-fpm
state: restarted
listen: restart web stackDesacople tarefas de manipuladores
A grande vantagem é o desacoplamento: as tarefas referenciam um tópico, e você pode adicionar ou remover manipuladores sem alterar as tarefas que fazem a notificação.
O nome ainda é opcional, mas útil
Um manipulador com listen ainda pode ter um name, o que mantém a saída legível e também permite que outras tarefas o notifiquem diretamente.
Um manipulador pode ouvir vários tópicos
Forneça uma lista a listen e um manipulador responderá a vários tópicos diferentes. Ele reagirá ao evento que for notificado.
listen:
- restart web stack
- reload tlsContinua idempotente
As notificações baseadas em tópicos obedecem às mesmas regras: os manipuladores só são acionados quando há changed, e cada um ainda é executado no máximo uma vez por play.
A ordem continua sendo a ordem de definição
Quando um tópico desperta vários manipuladores, eles são executados na ordem em que foram definidos na lista de manipuladores, assim como os manipuladores comuns.
Comum em funções compartilhadas
Funções reutilizáveis usam listen para que os consumidores notifiquem um tópico estável, enquanto a função pode alterar livremente seu conjunto interno de manipuladores.
Notify versus listen
notify é o sinal enviado por uma tarefa; listen é a inscrição de um manipulador. Juntos, eles transformam um evento em várias ações. 🔔
Verificação rápida
Você quer que uma única notificação reinicie três serviços ao mesmo tempo. O que permite que vários manipuladores respondam a um único tópico?
Recapitulação
Com listen, uma tarefa notifica um tópico e todos os manipuladores inscritos são executados. Isso desacopla as tarefas dos manipuladores e permite uma expansão organizada. 🎯
Perguntas Frequentes
A aula “Listen: um acionador, vários handlers” é grátis?
Sim — o texto completo de “Listen: um acionador, vários handlers” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.
O que vou aprender em “Listen: um acionador, vários handlers”?
Distribua uma única notificação. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar DevOps Bootcamp?
Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Listen: um acionador, vários handlers”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de DevOps Bootcamp?
Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Notifique um handler quando houver mudanças
- Definindo handlers e padrões de reinicialização
- Quando os handlers são executados e flush_handlers
- Listen: um acionador, vários handlers