Erro: Maximum execution time exceeded — Tempo limite de execução

Time Full Services Time Full Services
Tipo Erros fatais
Nome do erro Erro: Maximum execution time exceeded — Tempo limite de execução
Severidade Crítico
Desde WordPress 1.0
Descrição Fatal error: Maximum execution time of 30 seconds exceeded. Ocorre em scripts longos como importações, processamentos em lote ou loops infinitos.

Causa

O PHP tem um limite padrão de 30 segundos para execução de scripts. Operações pesadas em page load, como importar CSVs ou processar imagens em lote, excedem esse limite.

Como resolver

Para tarefas longas, use o sistema de filas do WordPress (WP Cron + Action Scheduler). Se imprescindível aumentar o tempo, use set_time_limit() com cautela apenas em scripts CLI.

PHP
<?php
// ❌ ERRADO — processa tudo de uma vez em um request HTTP
function importar_csv_errado(string $arquivo): void {
    $linhas = file($arquivo); // pode ter 100k linhas
    foreach ($linhas as $linha) {
        // processar cada linha...
        wp_insert_post([/* ... */]);
    }
}

// ✅ CORRETO — processa em lotes usando WP Cron
function importar_csv_em_lotes(string $arquivo): void {
    $linhas    = file($arquivo);
    $total     = count($linhas);
    $lote_size = 50;

    for ($i = 0; $i < $total; $i += $lote_size) {
        $lote = array_slice($linhas, $i, $lote_size);
        // Agenda processamento do lote
        as_schedule_single_action(
            time() + ($i / $lote_size) * 5, // a cada 5s
            'processar_lote_csv',
            ['lote' => $lote, 'offset' => $i]
        );
    }
}

// ✅ Para WP-CLI onde faz sentido aumentar o limite
if (defined('WP_CLI') && WP_CLI) {
    set_time_limit(0);
    // processar em lote...
}

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →