MediaWiki:Common.js
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";
}