A API Heartbeat do WordPress funciona como o pulso do seu site: ela envia um pequeno sinal de "estou online" do seu navegador para o servidor a cada poucos segundos. Esse ciclo automático de requisição/resposta sincroniza os dados, posts e painel de controle do seu site, fornecendo atualizações em tempo real e funcionalidades essenciais para editores, plugins e administradores.
Neste artigo do glossário, você aprenderá exatamente como funciona a API Heartbeat do WordPress, por que ela é importante e como monitorá-la, controlá-la ou desativá-la caso ela cause alta demanda de CPU em sua hospedagem.
Por que a API Heartbeat do WordPress é importante?
A API Heartbeat é a base de muitas das funcionalidades mais amigáveis do WordPress, mantendo o navegador e o servidor em constante comunicação. Sem ela, você perderia recursos como salvamento automático, bloqueio colaborativo de posts e atualizações em tempo real do painel de controle.
- Protege seu editor de posts: Ao escrever ou editar um post no editor do WordPress , o Heartbeat salva automaticamente suas alterações a cada 15 a 60 segundos, para que você nunca perca seu trabalho caso seu navegador ou conexão caia.
- Bloqueio de usuários e notificações: Se dois autores tentarem editar a mesma publicação simultaneamente, o Heartbeat envia notificações ("Seu membro da equipe está editando esta publicação") e aplica um mecanismo de bloqueio para evitar conflitos de conteúdo.
- Widgets de painel de controle em tempo real: Plugins de comércio eletrônico como o WooCommerce usam a API para atualizar os dados de vendas no seu painel de controle sem a necessidade de recarregar a página inteira.
- Alertas de tempo limite da sessão: O Heartbeat pode alertá-lo se sua sessão de login expirou, solicitando que você faça login novamente antes de perder as edições não salvas.
Como funciona a API Heartbeat: o básico
O Heartbeat funciona por meio de pequenas chamadas AJAX ao seu servidor, permitindo que o WordPress coordene os dados sem a necessidade de recarregar completamente a página. Esses pings frequentes otimizam a funcionalidade e a segurança , garantindo que os editores vejam informações atualizadas e que as sessões permaneçam válidas.
- O navegador envia admin-ajax.php Solicitar: A cada pulso do Heartbeat, seu navegador envia uma pequena chamada AJAX para /wp-admin/admin-ajax.php.
- Processamento da solicitação pelo servidor: O WordPress executa quaisquer funções interceptadas, recupera novos dados e os envia de volta como uma resposta JSON.
- O navegador recebe e age: os eventos JavaScript do seu navegador capturam a resposta, atualizam a interface do usuário (por exemplo, salvamento automático, atualização de widgets) e preparam o sistema para o próximo intervalo.
js
// Exemplo: Escutar o próximo pulso de pulsação no frontend
jQuery(document).on('heartbeat-tick', function(event, data) {
console.log('Resposta de pulsação recebida:', data);
});
- Intervalo padrão : Tela do editor (15 segundos) e Painel de controle e outras páginas administrativas (60 segundos).
Hooks principais e exemplos de código
Os desenvolvedores aproveitam os recursos integrados do Heartbeat para adicionar funcionalidades personalizadas ou ajustar seu comportamento. Você pode adaptar a API para trocar os dados necessários utilizando esses eventos em JavaScript e PHP.
Ganchos JavaScript
Abaixo estão dois principais hooks de JS que você pode usar para controle do front-end:
- batimento cardíaco-enviar: Anexe dados personalizados antes de cada solicitação.
- batimento cardíaco-tique: Aja de acordo com os dados recebidos após a conclusão da solicitação.
js
// Anexar informações extras a cada evento heartbeat-send
jQuery(document).on('heartbeat-send', function(e, data) {
data.customValue = jQuery('#my-field').val();
});
Ganchos PHP
No lado do servidor, esses hooks permitem modificar ou reagir às chamadas Heartbeat:
- enviar batimento cardíaco: Modifique os dados retornados pelo servidor.
- batimento cardíaco recebido: Execute uma ação quando o servidor receber um tick.
php
add_filter('heartbeat_send', 'my_heartbeat_send', 10, 2);
function my_heartbeat_send($response, $screen_id) {
if ($screen_id === 'post') {
$response['server_time'] = time();
}
return $response;
}
Casos de uso comuns da API Heartbeat do WordPress
Os recursos em tempo real do Heartbeat são essenciais para muitas funcionalidades do WordPress. A sincronização entre servidor e navegador garante que painéis e editores permaneçam atualizados sem a necessidade de cliques manuais ou recarregamentos completos.
- Salvamento automático e revisões: o Heartbeat funciona perfeitamente no editor de pós-produção, criando backups a cada 15 segundos para que você possa recuperar conteúdo perdido.
- Dados de vendas em tempo real: os desenvolvedores de plugins de comércio eletrônico usam o Heartbeat para obter estatísticas de vendas atualizadas e exibi-las instantaneamente.
- Avisos de expiração de sessão: Quando sua sessão estiver perto de expirar, o Heartbeat exibirá um aviso: “Clique aqui para permanecer conectado”.
- Alertas de Colaboração: Você verá quem está editando qual postagem em sites com múltiplos autores, evitando conflitos de sobrescrita.
Considerações sobre desempenho e alto uso da CPU
Embora indispensável para atualizações em tempo real, o Heartbeat pode consumir muitos recursos da CPU em sites com alto tráfego. Cada requisição AJAX frequente para admin-ajax.php utiliza tempo de processamento e memória, o que pode sobrecarregar contas de hospedagem compartilhada.
- Carga elevada da CPU: Chamadas frequentes à API Heartbeat podem aumentar significativamente o uso da CPU do seu servidor, especialmente em planos de hospedagem compartilhada, pois cada chamada requer que o PHP processe uma solicitação AJAX
- Resposta mais lenta da página: À medida que o servidor processa mais dessas solicitações, o carregamento das páginas do front-end e as interações com o painel de administração podem ficar visivelmente mais lentos.
- Risco de suspensão: Se o volume de admin-ajax.php Se o número de solicitações sobrecarregar seu site além dos limites de CPU do seu provedor de hospedagem, sua conta poderá ser limitada ou suspensa até que o uso retorne a níveis aceitáveis.
Como monitorar o tráfego de batimentos cardíacos?
Observar a atividade do servidor pode ajudar a diagnosticar gargalos de desempenho precocemente. Use logs do servidor e ferramentas do lado do cliente para monitorar a frequência de requisições e os tempos de resposta.
- Registros e estatísticas do servidor: Verifique os picos de uso da CPU no cPanel ou no painel de controle da sua hospedagem, concentrando-se em: entradas em /wp-admin/admin-ajax.php.
- Ferramentas de desenvolvedor do navegador: No Chrome ou Firefox, acesse as Ferramentas de desenvolvedor → guia Rede → filtre por “admin-ajax.php” → observe a frequência de requisições e o tempo de resposta.
- Soluções com plugins: Instale plugins de desempenho (por exemplo, Query Monitor) para visualizar chamadas de Heartbeat, uso de memória e tempo de execução diretamente no painel de administração.
Controlando e limitando a API Heartbeat
Se o ritmo padrão do Heartbeat sobrecarregar seu servidor, você pode reduzi-lo ou desativá-lo seletivamente. Isso permite equilibrar recursos em tempo real com desempenho ideal e controle de recursos.
- Via plugin: Instale o Heartbeat Control ou use as configurações integradas do WP Rocket
- Via código
php
// Reduzir a frequência do Heartbeat para uma vez a cada 60 segundos
add_filter('heartbeat_settings', function($settings) {
$settings['interval'] = 60;
return $settings;
});
// Desativar completamente no front-end
add_action('init', function() {
if (!is_admin()) wp_deregister_script('heartbeat');
}, 1);
Riscos de desativar a API Heartbeat
Desativar o Heartbeat pode aliviar a carga da CPU, mas isso tem o custo de várias funcionalidades importantes. Antes de desativá-lo em todo o site, entenda as vantagens e desvantagens em termos de experiência do usuário e segurança.
- Sem salvamento automático no Editor Clássico → é necessário clicar manualmente em “Salvar rascunho” para cada alteração.
- Possibilidade de perda de dados caso a conexão com a Internet seja interrompida durante a publicação/atualização.
- Os widgets e plugins do painel que dependem do Heartbeat deixarão de funcionar, reduzindo os relatórios e recursos em tempo real.
Melhores práticas e resolução de problemas
Em vez de desativar completamente o Heartbeat, é mais sensato ajustar seu comportamento. Ao limitar ou registrar seletivamente as solicitações do Heartbeat, você preserva seus benefícios e mantém a integridade do servidor.
- Controle, não desative : em vez de desativá-lo completamente, aumente o intervalo de 15 para 30 ou 60 segundos.
- Teste em ambiente de homologação : Primeiro, aplique alterações de intervalo ou cancelamento de registro em um ambiente de homologação para detectar problemas.
- Combine com o armazenamento em cache : Utilize o cache de objetos ou páginas para compensar qualquer carga extra no servidor causada pelo Heartbeat.
- Ativar registro de logs: Conecte-se batimento cardíaco recebido Para registrar os pulsos de clock e depurar comportamentos inesperados.
Considerações finais
A API Heartbeat do WordPress mantém seu site ativo e sincronizado. Ela salva rascunhos automaticamente, exibe dados em tempo real e evita conflitos de edição. Muitas requisições podem aumentar o uso da CPU. Você pode diminuir a velocidade ou desativá-la quando necessário. Teste as alterações em um ambiente de teste primeiro. Com o equilíbrio certo, o Heartbeat aumenta a funcionalidade sem prejudicar o desempenho.
Para obter mais termos do WordPress e explicações detalhadas, explore o Glossário da Seahawk Media .