Contao-Camp 2024
Ergebnis 1 bis 10 von 10

Thema: [GELÖST] contao-console contao:filesync: Last begrenzen

  1. #1
    Contao-Nutzer
    Registriert seit
    14.04.2011.
    Ort
    Bayreuth
    Beiträge
    87
    User beschenken
    Wunschliste

    Standard [GELÖST] contao-console contao:filesync: Last begrenzen

    Guten Morgen,

    ich betreue eine Contao Seite, welche aktuell über 700.000 Bilder hat (stark steigend). Diese sind nicht alle in der Contao Datenbank enthalten und es werden auch immer wieder neue per FTP hinzugefügt. Abgleichen kann ich diese ja über die Contao Console (./vendor/bin/contao-console contao:filesync). Das Problem hierbei ist, dass der Job mehrere Stunden läuft und auch auf dem zum Einsatz kommenden ded. Server eine Last erzeugt, die dazu führt, dass die Webseite für den Zeitraum des Syncs nicht erreichbar ist (Proxy Error).

    Hat jemand eine Idee, wie man den Sync begrenzen könnte? Mir ist es an sich egal wenn der einen ganzen Tag läuft, so lange dieser den regulären operativen Betrieb nicht stört.

    Contao: 4.7.3
    NGINX Webserver mit PHP 7.3 FPM
    MariaDB 10.3.14

    Vielen Dank und schöne Grüße

    Nachtrag: ein Aufruf mit nice bringt nichts. Ich vermute das Problem eher bei der Datenbank weshalb PHP einen Proxy Error bringt da der FPM Daemon die Antwort nicht zeitnah von der DB erzählt.
    Geändert von Xandrian (12.04.2019 um 05:32 Uhr)

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.939

    Standard

    Evtl. den Prozess mit nice starten: https://wiki.ubuntuusers.de/nice/ und ihn damit bzgl. Resourcenhunger im Zaum halten?
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer
    Registriert seit
    14.04.2011.
    Ort
    Bayreuth
    Beiträge
    87
    User beschenken
    Wunschliste

    Standard

    Nice bringt nichts. Siehe meinen Nachtrag. ;-)

  4. #4
    Contao-Nutzer
    Registriert seit
    14.04.2011.
    Ort
    Bayreuth
    Beiträge
    87
    User beschenken
    Wunschliste

    Standard

    So, ich hab mich jetzt einfach einmal durch den Quellcode gewühlt. Das Problem ist der Write-Lock auf die tl_files Tabelle (./vendor/contao/core-bundle/src/Resources/contao/library/Contao/Dbafs.php, Zeile 499). Ich habe diese temporär auskommentiert und den sync angestartet. Die Seite ist erreichbar und die Dateien werden sauber eingelesen.

    Ich teste das jetzt einmal durch und wenn es funktioniert, dann mache ich ein Ticket im GitHub auf...

    cu tb

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Naja - den Lock zu entfernen ist auch keine endgültige Lösung. In der Zeit, wo der Sync läuft, dürfte halt niemand etwas an der tl_files Tabelle ändern, sprich irgendwas im Dateimanager ändern oder eine Datei hinaufladen über das Backend (oder möglicherweise auch Frontend, je nach dem).

    Werden die Dateien per FTP in beliebige Ordner geladen oder nur in einem bestimmten?

  6. #6
    Contao-Nutzer
    Registriert seit
    14.04.2011.
    Ort
    Bayreuth
    Beiträge
    87
    User beschenken
    Wunschliste

    Standard

    Ja, aber eine hier gangbare da ich das steuern kann. Eventuell fällt dann jemand eine bessere Lösung ein. Ich kann halt keinen sync laufen lassen wenn die Seite dann stundenlang nicht erreichbar ist.

    Es ist ja ein WRITE-Lock. Warum dann das Frondend nicht mehr funktioniert ist mir schleierhaft. Da sollten ja auch nur READs notwendig sein. Aber ich bin jetzt hier nicht so tief in der Materie...

    Ja, es sind an sich feste Verzeichnisse in die hochgeladen wird bzw. bei denen es die große Menge betrifft. Ein einzelnes Bild, welches in einem anderen Verzeichnis liegt wird meistens über das Backend hochgeladen. Nur eben die Massenuploads erfolgen über FTP da das die einzig praktikable Lösung ist.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Du könntest dir ja ein eigenes Script schreiben, das diese Ordner "überwacht" und bei Änderungen die neuen Dateien per
    PHP-Code:
    \Contao\Dbafs::addResource(
    hinzufügt.
    Geändert von Spooky (11.04.2019 um 09:02 Uhr)

  8. #8
    Contao-Nutzer
    Registriert seit
    14.04.2011.
    Ort
    Bayreuth
    Beiträge
    87
    User beschenken
    Wunschliste

    Standard

    Hm, das wäre eine Idee. Werd ich mir mal anschauen. Da ich hier ja doch eine tiefere hierarchische Struktur habe. Aber evtl. kann ich die Verzeichnisse eh ignorieren wenn das File Access Extension rekursiv arbeiten kann ;-)

    Schöne Grüße

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Zitat Zitat von Xandrian Beitrag anzeigen
    Aber evtl. kann ich die Verzeichnisse eh ignorieren wenn das File Access Extension rekursiv arbeiten kann ;-)
    Done

  10. #10
    Contao-Nutzer
    Registriert seit
    14.04.2011.
    Ort
    Bayreuth
    Beiträge
    87
    User beschenken
    Wunschliste

    Standard

    Nach ca. 16 Stunden war der Import fertig. Ich habe das jetzt wieder zurück geändert. Durch die Änderung der Extension von Spooky funktioniert es auch anderweitig so wie gewünscht.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •