O Que é a API WordPress Heartbeat e Como Gerenciá-la
Em 2013, o WordPress introduziu a API Heartbeat — um recurso que permite que seu navegador se comunique automaticamente com o servidor. Contudo, existem alguns pontos negativos para esse recurso.
Se você utiliza um plano de hospedagem compartilhada, precisa ficar de olho no uso de CPU do seu servidor. Isso porque algumas algumas empresas de hospedagem podem suspender sua conta quando ela passar do limite.
Aqui, iremos falar do motivo pelo qual a API WordPress Heartbeat é o suspeito habitual de causar esse problema.
Conteúdo
O Que é a API WordPress Heartbeat?
A API Heartbeat do WordPress usa consultas AJAX para proporcionar um protocolo de comunicação entre o navegador e o servidor.
Como seu nome implica, a API irá enviar pulsos contínuos e gatilhos de eventos (ou callbacks) ao receber os dados. Essa função irá ajudá-lo a sincronizar os dados entre o servidor e o painel de controle do WordPress.
A ideia por trás da API Heartbeat é bastante atraente. Por exemplo, quando você cria ou edita um post a partir do editor, ele proporciona a função de salvar automaticamente a publicação de maneira periódica.
Num site colaborativo, ele possui uma função de travamento de post, impedindo que você edite uma postagem onde outro usuário esteja trabalhando. Se você usar um plugin de e-commerce, essa API também irá exibir as vendas que ocorrem em seu website.
Por Que Limitar a API Heartbeat do WordPress?
Enquanto é benéfico ter uma função de salvamento automático e recursos de notificação de dados em tempo real, isso pode ser prejudicial numa situação específica.
A API Heartbeat envia consultas AJAX (solicitações POST) usando o arquivo /wp-admin/admin-ajax.php. Cada pedido que executa um arquivo PHP é igual ao tempo de CPU no servidor.
Isso pode causar um grande número de solicitações sendo enviadas para o servidor de hospedagem, o que pode resultar em alta utilização da CPU.
Como notamos anteriormente, isso pode ser um problema para um webmaster com um plano de hospedagem compartilhado. Conforme você atinge o limite de sua cota, a alta taxa de uso do processador pode eventualmente resultar na suspensão de sua conta.
Então, se você está tendo um problema que causa picos no POST-admin-ajax.php, aqui está um tutorial que conserta o problema.
Coisas Para se Considerar Antes de Suspender a API Heartbeat
Se você está pensando em suspender a API Heartbeat de maneira completa, você precisa pensar duas vezes sobre isso. Não porque você não pode fazê-lo, mas sim porque não é algo prático.
Sem a API Heartbeat do WordPress, todas as mudanças que você faz na publicação serão perdidas caso você esqueça de apertar o botão Salvar Como Rascunho. Você também não terá mais acesso aos recursos de revisões no WordPress.
Se você instalar plugins que usam a API Heartbeat, também não poderá exibir notificações em tempo real e recursos de informação em seu site.
Mas, se você está trabalhando sozinho e todas essas funções não significam muito para você, faz sentido prosseguir e interromper a API Heartbeat do WordPress.
Do contrário, você deveria considerar apenas controlá-la ao invés disso.
Como Limitar a API Heartbeat do WordPress com um Plugin
Você pode controlar o quão frequentemente a API Heartbeat envia callbacks para o seu servidor usando o plugin Heartbeat Control. Se você é novo no WordPress, por favor dê uma olhada em nosso tutorial sobre como instalar plugins do WordPress.
Uma vez que você tiver instalado e ativado o plugin, vá para Configurações → Heartbeat Control Settings. Aqui, você pode definir uma determinada regra para a API.
- Heartbeat Behavior (Comportamento do Heartbeat) – permite que você Habilite Heartbeat, Desabilite Heartbeat, ou Modifique Heartbeat
- Locations (Locais) – determina a partir de que área você deseja controlar a API, proporcionando três opções para você: Painel do WordPress, Frontend e Editor de Post
- Frequency (Frequência) – a quantidade de callbacks que você permite para cada local. O valor varia de 15 a 300 segundos
No exemplo acima, nós limitamos a frequência de funcionamento da API Heartbeat no Editor de Posts para 200 segundos. Essa é uma abordagem mais prática se você possui múltiplos autores trabalhando no mesmo site do WordPress.
Você também pode definir o valor de acordo com cada local que você deseja controlar. Apenas clique no botão Add Another Value (Adicionar Outro Valor) e ajuste-o de acordo com as suas necessidades.
O plugin também permite que você desabilite completamente a API WordPress Heartbeat. Você pode fazer isso ao escolher Disable Heartbeat (Desabilitar Heartbeat) na opção Heartbeat Behavior (Comportamento do Heartbeat).
Como Parar Totalmente a API Heartbeat sem um Plugin
Você também pode parar a API Heartbeat sem o uso de um plugin, ao adicionar as seguintes linhas de código no arquivo functions.php de seu tema ativo:
add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat()
{ wp_deregister_script('heartbeat');
}
Por favor lembre-se que você só deve fazer isso se você for a única pessoa trabalhando no site e não há necessidade de instalar plugins adicionais que utilizam essa API.
A partir do painel de seu WordPress, vá para Aparência → Editor de Temas. Garanta que você está editando o tema ativo de seu site. Clique em Funções do Tema (functions.php) no menu de navegação do lado direito. Cole o snippet de código acima logo depois da tag de abertura <?php e clique em Atualizar Arquivo.
É isso, agora você desabilitou com sucesso a API Heartbeat de seu site do WordPress.
Conclusão
Você aprendeu sobre a API Heartbeat do WordPress e a funcionalidade que ela traz para seu site. Apesar dela definitivamente ser uma funcionalidade benéfica, num ambiente de hospedagem compartilhada pode acabar causando muitos problemas se você não lidar bem com essa API.
Para reduzir o uso de CPU do seu servidor, você pode controlar a API ou desabilitá-la de maneira completa. Adicionalmente, você pode usar um plugin ou adicionar um código para o arquivo functions.php. Fale conosco na caixa de comentários abaixo para dizer se esse tutorial foi útil para você!
Comentários
May 20 2020
Boa tarde, Usei o código no functions.php, agora se eu precisar habilitar o heartbeat novamente é só apagar o código do functions.php?
June 01 2020
Oi Levi! Isso mesmo. Se quiser, você também pode desativar a API Heartbeat do WordPress usando o plugin que mostramos no tutorial.