Große Websites und knappe Zeitlimits
Auf einer Website mit einigen tausend Mediendateien und vielen Beiträgen ist ein Scan viel Arbeit. Damit er trotzdem durchläuft — auch bei Anbietern, die Rechenzeit knapp halten — arbeitet Media Organizer nicht in einem Stück, sondern in Schritten.
Was ein Schritt ist
Beim Klick auf Scannen holt die Übersicht sich immer wieder ein kleines Stück Arbeit vom Server: ein paar hundert Dateien, ein paar hundert Datensätze. Nach jedem Stück schreibt der Server auf, wie weit er gekommen ist, und meldet den Stand zurück. Wie lange ein Scan dauert, zeigt sich deshalb in der Anzahl der Schritte — nicht in der Länge eines einzelnen. Genau das ist der Punkt: Ein Server bricht einen Vorgang ab, der zu lange dauert, aber er zählt nicht mit, wie viele kurze Vorgänge nacheinander kommen.
Während des Scans sehen Sie, woran er gerade arbeitet („Dateien werden erfasst…“, „Referenzen werden gesammelt: Beiträge“), wie weit die laufende Phase ist, was bisher gefunden wurde und wie lange er schon läuft.
Der Fortschritt liegt in der Datenbank, nicht im Browser. Sie können das Fenster schließen, den Rechner ausschalten oder unterwegs auf eine andere Seite wechseln — der Scan steht dann still, ist aber nicht verloren. Beim nächsten Öffnen der Übersicht bietet Media Organizer Scan fortsetzen an.
Wenn ein Schritt abbricht
Meldet Media Organizer, dass der Server einen Schritt abgebrochen hat, ist fast immer das Zeitlimit des Servers erreicht worden. Dann gilt:
- Scan fortsetzen klicken. Der Lauf macht an derselben Stelle weiter; die bisherige Arbeit bleibt erhalten.
- Bricht es erneut ab, in den Optionen unter Leistung die Schrittgröße verringern — siehe unten.
- Hilft auch das nicht, den Scan als geplante Aufgabe oder über die Kommandozeile laufen lassen.
Wenn ein Scan gar nicht erst startet
Nicht jede Meldung betrifft einen abgebrochenen Schritt. Media Organizer sagt jeweils, was los war, und nennt den passenden nächsten Schritt:
- „Es liegt bereits ein unfertiger Scan vor“ — ein früherer Scan wurde nicht zu Ende geführt. Mit Scan fortsetzen bringen Sie ihn zu Ende; Scannen verwirft ihn und beginnt von vorn. Die Schrittgröße spielt hier keine Rolle.
- „Der Scan konnte nicht gestartet werden“ — es wurde nichts begonnen, also gibt es auch nichts fortzusetzen. Die Ursache steht im Protokoll der Website in der Datei „jimgo.php“.
Die Schrittgröße einstellen
Optionen → Leistung:
| Einstellung | Vorgabe | Bedeutung |
|---|---|---|
| Dateien je Scan-Schritt | 200 | Wie viele Dateien ein Schritt erfasst und prüft. |
| Datensätze je Scan-Schritt | 500 | Wie viele Beiträge, Module und andere Datensätze ein Schritt nach Verweisen durchsucht. |
| Höchstdauer je Scan-Schritt | 10 Sekunden | Ein Schritt endet spätestens nach dieser Zeit, auch wenn die eingestellte Menge noch nicht erreicht ist. |
Kleinere Werte machen jeden Schritt kürzer und den Gesamtlauf etwas länger. Das ist der Tausch, um den es geht: Ein Scan, der zehn Minuten braucht, aber durchläuft, ist besser als einer, der nach drei Minuten abbricht.
Die Höchstdauer ist die Notbremse für den Fall, dass einzelne Datensätze unerwartet teuer sind — ein Beitrag mit sehr viel Text, Mediendateien auf einem Netzlaufwerk. Sie sollte deutlich unter dem Zeitlimit Ihres Servers liegen; die Vorgabe von 10 Sekunden passt zu den üblichen 30 Sekunden.
Große Bilder optimieren
Das Optimieren läuft nach demselben Muster: Bild für Bild, mit einer Zeitgrenze je Durchgang (Optionen → Optimierung → Zeit pro Schritt, Vorgabe 15 Sekunden). Ein einzelnes Bild ist dabei unteilbar — ein sehr großes kann die Grenze deutlich überschreiten, weshalb auch hier Luft bis zum Zeitlimit des Servers gehört.
Wie teuer ein Bild ist, hängt vor allem an seinen Bildpunkten, und daran, ob es in den Arbeitsspeicher für die Bildbearbeitung passt (Vorgabe 128 MB). Ein Bild mit 40 Megapixeln passt dort nicht hinein:
- Mit ImageMagick wird es dann über die Festplatte verarbeitet. Gemessen auf einem schnellen Testsystem: rund 16 Sekunden statt 4, aber es läuft durch. Wer den Wert erhöht, tauscht Arbeitsspeicher gegen Geschwindigkeit.
- Ohne ImageMagick wird es übersprungen und als „zu groß zum Verarbeiten“ angezeigt. Bei 128 MB liegt die Grenze bei rund 18 Megapixeln.
Auf einer Website mit vielen sehr großen Bildern ist ImageMagick deshalb die wirksamste einzelne Maßnahme — deutlich wirksamer als jede Einstellung.
Der zweite Scan ist billiger als der erste
Media Organizer bildet für jede Datei eine Prüfsumme — daran erkennt er Duplikate und nachträgliche Änderungen. Das ist der Teil, der die meiste Zeit kostet, denn dafür muss jede Datei einmal vollständig gelesen werden.
Beim nächsten Scan passiert das nur noch für Dateien, deren Größe oder Änderungsdatum sich unterscheidet. Auf einer Website, auf der zwischen zwei Scans zwanzig Bilder dazugekommen sind, werden auch nur diese zwanzig gelesen.
Scannen ohne Browser
Bei sehr großen Beständen ist der Browser nicht der beste Ort für einen Scan. Zwei Wege führen daran vorbei:
- Die geplante Aufgabe. Sie bringt einen großen Scan über mehrere Durchgänge zu Ende: Jeder Durchgang arbeitet eine Weile und der nächste setzt fort. Die E-Mail kommt, wenn der Scan fertig ist — nicht nach jedem Durchgang.
- Die Kommandozeile. Dort gibt es kein Zeitlimit; der Scan läuft am Stück und zeigt seinen Fortschritt mit.
Beide teilen sich denselben Fortschritt mit der Oberfläche. Ein Scan, den Sie im Backend begonnen haben, kann von der geplanten Aufgabe zu Ende gebracht werden — und umgekehrt.
Das Protokoll
Geht technisch etwas schief — ein abgebrochener Schritt, ein Suchbereich, der nicht gelesen
werden konnte, ein Bild, das sich nicht optimieren ließ —, schreibt Media Organizer das in die Datei jimgo.php im
Protokollordner Ihrer Website (der Pfad steht in System → Globale Konfiguration → System
→ Pfad zum Protokollordner). Eine Zeile sieht so aus:
2026-09-12T14:22:31+00:00 ERROR A scan step failed. [scan=118 phase=providers error=… where=…]
Ab Werk werden nur Fehler aufgezeichnet; das schreibt im Normalbetrieb so gut wie nie. Unter Optionen → Protokoll lässt sich das umstellen — „Alles“ zeichnet auch Beginn und Abschluss jedes Scans auf und ist als Dauereinstellung nicht gedacht.
Wenn Sie uns ein Problem melden, ist diese Datei das Nützlichste, was Sie mitschicken können.
Wenn es weiterhin klemmt
Ein Hinweis für das Gespräch mit Ihrem Anbieter: Die PHP-Einstellung
max_execution_time ist oft nicht die Ursache. Sie zählt Wartezeit auf die
Datenbank und auf Dateizugriffe nicht mit — und daraus besteht ein Scan zum größten Teil. Was einen
Scan abbricht, ist meist das Zeitlimit des Webservers davor (bei nginx
fastcgi_read_timeout, bei PHP-FPM request_terminate_timeout). Danach
sollten Sie fragen, wenn die Schrittgröße nicht mehr hilft.