Utilizar o WP All Import, do WordPress Importer, e alguns plugins semelhantes para importar arquivos XML, arquivos CSV, arquivos WXR e imagens é uma tarefa comum para desenvolvedores e sites cujo conteúdo é alterado frequentemente. Contudo, também é comum que ocorram timeouts e problemas de desempenho do site enquanto essas importações estão sendo processadas. 

Iremos nesse artigo discutiremos os passos que pode seguir para gerenciar um complicado processo de importação.

Saiba que não podemos garantir que todos os processos de importação são executados com sucesso na nossa plataforma. Se a importação não puder ser feita na Kinsta, recomendamos executar a importação em um ambiente de teste local e depois disso, importar a base de dados ou a tabela atualizada para a base de dados do site. 

Por Que as Importações Provocam Tempos de Espera e Problemas de Desempenho?

Existem dois tipos de timeouts nos quais grandes processos de importação são habitualmente executados: 

  • Os timeouts PHP ocorrem se um único processo PHP for executado por mais tempo do que o max_execution_time ou max_input_time definidos na configuração do PHP. Quando isso acontece, um erro do servidor 502 é normalmente exibido. 
  • Os timeouts HTTP ocorrem quando a conexão entre o navegador e o servidor web é mantida aberta durante muito tempo. Quando isso acontece, geralmente é mostrado um erro gateway timeout 504 .

É comum que o desempenho do website fique também mais lento quando uma grande importação está sendo executada. Isso ocorre porque o PHP e o MySQL estão ocupados com o processo de importação. Isso faz com que o tráfego normal do site tenha que esperar até que o PHP e o MySQL fiquem disponíveis para gerar a página solicitada. 

Lidando com os Timeouts PHP

Para sites hospedados na Kinsta, o PHP max_execution_time e max_input_time são configurados para 300 segundos por padrão. Os valores máximos de tempo limite PHP disponíveis em nossa plataforma são baseados em seu plano de hospedagem atual.

Se você estiver encontrando um timeout PHP, recomendamos trabalhar com um desenvolvedor para resolver o problema. Por exemplo, em vez de executar um processo de importação através de uma solicitação PHP longa, seria melhor executar a importação diretamente no container usando WP-CLI ou um PHP local ou um script Bash.

Lidando com os Timeouts HTTP

Os timeouts HTTP normalmente ocorrem após 60 segundos para sites hospedados na Kinsta. Devido ao design da nossa infraestrutura, não podemos aumentar a duração do timeout HTTP. 

Se tiver um timeout HTTP, existem dois passos para tentar solucionar o problema: 

  • Se o processo estiver quase expirando enquanto o arquivo de importação está sendo carregado, altere para uma conexão de internet mais rápida e tente novamente o processo. 
  • Se estiver usando uma ferramenta com suporte para WP-CLI, como o plugin WordPress Importer, poderá executar a importação diretamente no servidor e ignorar por completo a conexão HTTP.

Saiba que a execução de uma importação através do SSH é uma alteração no conteúdo do seu website e ela não está no não está incluída naquilo que a nossa equipe de suporte pode fazer por você. Além disso, se você não estiver familiarizado com o SSH, terá de aprender a usar essa forte ferramenta ou trabalhar com um desenvolvedor para processar a importação através do SSH. 

Lidando Com Problemas de Desempenho do Site

Se o processo de importação estiver sendo corretamente executado, mas se o seu site tiver um desempenho insatisfatório durante o processo, existem duas opções: 

  • Agendar a atividade de importação para um período de tráfego reduzido a fim de minimizar o impacto nos visitantes do seu site. 
  • Fazer o upgrade para um plano com mais PHP Workers no seu site ao vivo. Se os problemas de desempenho forem provocados ​​pelo fato de o PHP não estar disponível para gerenciar mais solicitações, fazer um upgrade temporário para um plano com mais PHP Workers, isso significará que o PHP ganha uma maior capacidade de gerenciar o tráfego para o site e a importação. 
  • Fazer um upgrade ao plano não será uma ajuda se você estiver tentando executar uma importação em um site de teste. Nosso ambiente de teste tem um número permanente de PHP Workers e não será afetado por upgrades ao plano.

Fazer um upgrade aos planos para obter acesso a mais operadores PHP não será útil para todos os casos. Se o seu site está lento porque a base de dados (MySQL) está ocupada inserindo conteúdo na base de dados, então é improvável que adicionar mais operadores PHP acelere o desempenho do seu site. 

Obtendo Ajuda

Se já fez as sugestões anteriores desse artigo, se ainda está tendo problemas e gostaria de obter ajuda, o próximo passo seria entrar em contato com nossa equipe de suporte. Contudo, antes de iniciar uma conversa com nossa equipe de suporte, reúna o máximo de informações possível. 

  • Inicie a importação e contabilize o tempo necessário para o processo falhar. Se o processo falhar após 1 minuto, provavelmente o problema é um timeout HTTP. Se falhar após 5 minutos, será provavelmente um timeout PHP. Se falhar em algum outro ponto, provavelmente existirá outro limite ou erro, não sendo por isso um timeout. 
  • Verifique os registros de erros no momento em que a importação falhou e veja se um erro foi registrado no momento dessa falha. 
  • Faça uma captura de tela da mensagem de erro ou página de erro que você está encontrando. 
  • Escreva uma descrição resumida do tipo de arquivo que você está tentando importar, a forma como o arquivo foi criado, o que ele contém, as ferramentas usadas para criar o arquivo e para executar a importação e o erro que está ocorrendo. 

Após reunir essas informações, abra um ticket com a equipe de suporte da Kinsta. Porém, saiba que não podemos garantir o sucesso todas as importações. 

Próximos Passos – Fluxo de Trabalho no Teste Local

Se a importação no ambiente Kinsta não for possível, o próximo passo é desenvolver um novo fluxo de trabalho para o processo de importação, no qual a importação é executada em um ambiente de teste local. Note que um será necessário desenvolvedor para esse processo, a fim de garantir que nenhum dado é perdido e que a base de dados do seu site não é danificada. 

Em geral, o processo seria a criação de um ambiente de desenvolvimento local – você pode usar DevKinsta – onde você pode controlar todos os limites de tempo limite. Em seguida, complete a importação nesse ambiente local. Quando a importação estiver concluída, exporte uma cópia do base de dados ou as tabelas de base de dados atualizadas do seu ambiente local. Depois crie um backup o seu site ao vivo, elimine a base de dados (ou tabelas afetadas) de seu site ao vivo e importe a base de dados ou tabelas exportadas do seu ambiente local.