Hintergrundjobs mit Ajax werden nicht ausgeführt

Ich erhalte die Meldungen, dass über mehrere Tage hinweg keine Hintergrundjobs mehr ausgeführt worden sind und man solle erwägen, Cronjobs zu nutzen. Merkwürdig ist, dass hier AJAX aktiv ist und somit bei Besuch der cloud hier die Hintergrundjobs ohne weiteres Zutun ausgeführt werden sollten. Die Logdatei weist abgesehen von dem Klassiker Argument 3 passed to OCA\\\\Files\\\\Service\\\\TagService::__construct() must be an instance of OCP\\\\ITags · Issue #3376 · nextcloud/server · GitHub keinen weiteren Fehler oder dergleichen auf.

Version: Nextcloud 21.0.2
PHP: Version: 7.4.3
Webserver: Apache 2
Rechner: virtualisierter Host (Ubuntu 20.04 LTS)

Die Installation, also Server einschl. NC ist frisch und immer noch nicht wirklich nutzbar. Dazu gibt viele bugs (wie Leerzeichen und Umlaute bei PDFs, Fehler in der Doku, was zu größeren Problemen führt, ungelöste Fehler sowie nicht in den Logdateien nachvollziehbare Probleme). Schade :frowning:

Hallo @Mike07

Warum richtest du nicht einfach eine Cronjob ein? Ajax sollte nur verwendet werden, wenn es nicht anders geht. Wenn du z.B. die Nexctcloud auf einer Hostingplatform verwendest, auf der du aus was für Gründen auch immer kein Cron oder Webcron verwenden kannst. Scheint aber bei dir nicht der Fall zu sein, wenn du ein Ubuntu 20.04 verwendest, auf das du vollen Root Zugriff hast…

Siehe dazu auch:

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#ajax

Ja, ich weiß ja das ich das machen kann, danke für den Hinweis. Aber die Doku schreibt ja, mit AJAX laufen die Hintergrundjobs bei dem Besuch der Installation. Aber genau das läuft nicht und wird wohl einen mir noch unbekannten Grund haben.

Ich habe hier eine frische Komplettinstallation, also Server und NC und ich arbeite mich derzeit von einem Problem zum anderen durch. Ob es im kommerziellen Bereich entsprechende hotfixes gibt oder korrigierte bzw. abweichende Dokumentationen, keine Ahnung, das System ist so jedenfalls für den Einsatz leider nicht verlässlich genug bzw. untauglich. Ich möchte es ja nicht nur testen, sondern auch einsetzen.

Die Logdatei wird derzeit nur gefüllt, wenn der Level auf DEBUG steht, daher komme ich hier auch nicht weiter.

Ich suche daher Hinweise auf evt. fehlende nicht in der Doku erwähnte Komponenten bzw. bestimmte PHP-Einstellungen (wie z.B. den memory_limit Eintrag - da kommt zumindest eine entsprechende Meldung und ja an einer anderen Ecke steht hier etwas in der Doku). Es mag auch sein, dass ich in der Doku etwas übersehen oder falsch gelesen habe.

So führt leider die Doku zur Beispielinstallation auf Ubuntu 20.04 ohne Modifikationen nicht zum Erfolg. Man läuft hier schon bei dem cp Befehl wegen nicht berücksichtigter Dateien mit führendem Punkt einmal voll gegen die Wand ohne dass man direkt erkennt, wo das Problem liegt. Aber egal, Fehler passieren, ich suche daher die Ursache und bin für Tipps dankbar.

Ich kann dir leider nicht weiterhelfen betreffend AJAX, weil ich mich nie damit beschäftigt habe. Eventuell kannst du mal noch das Forum durchsuchen und auf Github schauen ob du irgendwelche Issues findest, obwohl ich es für Zeitverschwendung halte… :wink:

Da steht aber auch folgendes…

The AJAX scheduling method is the default option. Unfortunately, however, it is also the least reliable

und:

Especially when using the Activity App or external storages, where new files are added, updated or deleted one of the two methods below should be preferred.

Wenn du wirklich alle Funktionen der Nextcloud zuverlässig und so wie sie gedacht sind, nutzen möchtest, und die Cloud nicht nur nebenher nutzen möchtest, um ab und an mal ein paar Dateien zu teilen, solltest du einen CronJob einrichten. AJAX ist eine Notlösung, damit Nextcloud erst mal “out of the box” funktioniert. Warum also Zeit verschwenden und sich mit einem Problem befassen, welches von den Entwicklern selbst als unzuverlässig eingestuft wird, wenn man mit einer einzigen Zeile in einer Datei und einem einzelnen Befehl die empfohlene Variante nutzen kann, die viel zuverlässiger funktioniert?

Hier die Anleitung aus meinen Notizen. Funktioniert bei mir seit Jahren ohne Probleme…

Den Corntab des User www-data öffnen…

crontab -u www-data -e

…und folgendes einfügen:

*/5 * * * * php -f /pfad/zu/deiner/nextcloud/cron.php > /dev/null 2>&1

Das File speichern und folgenden Befehl ausführen.

sudo -u www-data php /pfad/zu/deiner/nextcloud/occ background:cron

That’s it. Problem solved!

Ja, ich habe das jetzt so eingerichtet. Alles nun grün. :wink:

Ich hatte noch ein paar andere Probleme, die ich lösen konnte. Ich dachte hier, dass es irgendwie einen größeren Zusammenhang gibt. Auch wenn AJAX “nur” eine Interimseinstellung für System ist, wo man auf einen cron Job keinen Einfluss hat, sollte das laufen.

Aber, zunächst einmal gelöst.

1 Like