Ir al contenido

MediaWiki:Common.js

De Caballipedia

Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.

  • Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
  • Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
  • Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */

<?php
// trigger-jobs.php
// Ejecuta todos los trabajos pendientes en la cola de MediaWiki

// Ajusta estas rutas según tu estructura
$phpBinary      = '/usr/local/bin/php'; // o simplemente 'php' si está en $PATH
$mediawikiRoot  = __DIR__;              // Asumiendo que trigger-jobs.php está en la raíz del wiki
$mediawikiRun   = "$mediawikiRoot/maintenance/run.php";
$logDir         = "$mediawikiRoot/logs";
$logFile        = "$logDir/runjobs.log";

// Asegúrate de que el directorio de logs exista
if (!is_dir($logDir)) {
    mkdir($logDir, 0755, true);
}

// Comprobación de existencia del archivo principal
if (!file_exists($mediawikiRun)) {
    http_response_code(500);
    echo "❌ Error: No se encuentra maintenance/run.php\n";
    exit;
}

// Parámetros de control
$maxLoops = 100; // Evita bucles infinitos
$jobsPerBatch = 100;
$jobsProcessed = 0;
$exitCode = 0;

// Bucle principal: ejecuta tandas hasta vaciar la cola
for ($i = 0; $i < $maxLoops; $i++) {
    $cmd = "$phpBinary $mediawikiRun runJobs --maxjobs=$jobsPerBatch --quiet";
    exec($cmd . " >> \"$logFile\" 2>&1", $output, $exitCode);

    // Verificar si ya no quedan trabajos pendientes
    $checkCmd = "$phpBinary $mediawikiRun showJobs";
    $pending = (int) trim(shell_exec($checkCmd));

    if ($pending === 0) {
        break;
    }

    $jobsProcessed += $jobsPerBatch;
    sleep(1); // Pausa breve entre tandas
}

// Mostrar respuesta al navegador o fetch()
header('Content-Type: text/plain; charset=UTF-8');
if ($exitCode === 0) {
    echo "✅ Se ejecutaron todos los trabajos pendientes.\n";
    echo "🧮 Total estimado de trabajos procesados: ~{$jobsProcessed}\n";
    echo "📄 Log disponible en: logs/runjobs.log\n";
} else {
    echo "❌ Error al ejecutar runJobs (código $exitCode)\n";
    echo "\n🔍 Última salida:\n" . end($output) . "\n";
}