mediawiki: jobs de fond

wiki
Pyjacpp 2026-08-01 22:59:56 +02:00
parent 5d9c7552c8
commit ad343789a0
No known key found for this signature in database
GPG Key ID: ED479A5A26930939
1 changed files with 36 additions and 0 deletions

View File

@ -52,6 +52,41 @@ in
services.syslogd.enable = true; services.syslogd.enable = true;
# Tâches lourdes à gérer au fond https://www.mediawiki.org/wiki/Manual:Job_queue
systemd.services.mediawiki-jobs =
let
# Hack pour retrouver la conf
conf = config.services.phpfpm.pools.mediawiki.phpEnv.MEDIAWIKI_CONFIG;
php = "${config.services.mediawiki.phpPackage}/bin/php";
maintenanceScript = "${config.services.mediawiki.finalPackage}/share/mediawiki/maintenance/run.php";
runJobs = "MEDIAWIKI_CONFIG='${conf}' ${php} ${maintenanceScript} runJobs --maxtime=3600";
in
{
description = "Tâches lourdes de Mediawiki";
wantedBy = [ "multi-user.target" ];
after = [ "phpfpm-mediawiki.service" ];
path = [ pkgs.mediawiki ];
# Inspiré de https://www.mediawiki.org/wiki/Manual:Job_queue
script = ''
while true; do
${runJobs} --type="enotifNotify"
# --wait pour ne pas boucler pour rien
${runJobs} --wait --maxjobs=20
# Au bout de 20 jobs on attend pour éviter une surcharge du serveur
sleep 10
done
'';
serviceConfig = {
Restart = "always";
RestartSec = "60s";
User = "mediawiki";
Nice = 10;
ProtectSystem = "full";
OOMScoreAdjust = 200;
};
};
services.mediawiki = { services.mediawiki = {
enable = true; enable = true;
@ -72,6 +107,7 @@ in
# Server settings # Server settings
$wgFavicon = 'https://www.crans.org/images/favicon.ico'; $wgFavicon = 'https://www.crans.org/images/favicon.ico';
$wgLogo = 'https://www.crans.org/images/crans.svg'; $wgLogo = 'https://www.crans.org/images/crans.svg';
$wgJobRunRate = 0; # On fait les jobs manuellement dans un systemd.
# Files and Uploads # Files and Uploads
$wgMaxUploadSize = 512 * 1024 * 1024; $wgMaxUploadSize = 512 * 1024 * 1024;