Neu php-Datei innerhalb eines Plugins per Cronjob aufrufen

Der_Bob

Gut bekanntes Mitglied
10. August 2007
222
9
Hallo,
Ich würde gerne eine selbst geschriebene php-Datei innerhalb eines Plugins (../includes/plugins/yx.../cron.php), die Artikeldaten mit unseren Lieferanten abgleicht regelmäßig abrufen. Die Datei gleicht nach und nach immer jeweils 1.000 Artikel eines Lieferanten ab und muss also einige dutzend mal am Tag ausgeführt werden.
Das Problem: Mittels Cronjob von außen (cronjob.de o.Ä.) habe ich keinen Zugriff auf die Datei, nicht mal mit Berechtigung 777 (403 - You do not have permission to access this document.)
Hat jemand einen Tipp wie sich die besagte cron.php vielleicht in die "includes/cron_inc.php" einbinden lässt (über einen HOOK? Ich hab' keinen dazu gefunden) oder wie man die Datei von einem externen cron-Dienst ansprechen könnte?
Danke und viele Grüße,
Marcus
 

krahni

Mitglied
7. Juli 2022
44
6
Hallo,
ja, habe ich gefunden, bekomme aber die Routinen aus dem Demo-Plugin bei mir nicht zum laufen ...
Den Cron-Eintrag stelle ich "konventionell" in die DB, die CronJob-Klasse habe ich kopiert und für mich modifiziert (nur die Debug-Logger Texte).
private const und dispatcher habe ich im Bootstrapper - läuft soweit, wird aber trotz frequency von 1 bei jedem 10. Seitenaufruf ausgeführt (default Einstellung)
Soll das so, oder was mache ich falsch?
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.773
536
Hallo,
Ich würde gerne eine selbst geschriebene php-Datei innerhalb eines Plugins (../includes/plugins/yx.../cron.php), die Artikeldaten mit unseren Lieferanten abgleicht regelmäßig abrufen. Die Datei gleicht nach und nach immer jeweils 1.000 Artikel eines Lieferanten ab und muss also einige dutzend mal am Tag ausgeführt werden.
Das Problem: Mittels Cronjob von außen (cronjob.de o.Ä.) habe ich keinen Zugriff auf die Datei, nicht mal mit Berechtigung 777 (403 - You do not have permission to access this document.)
Na, das wär ja auch nicht sehr elegant, wenn jemand von außerhalb irgendwelche Cronjobs bei dir ausführen könnte ;)

Da du aber schreibst, dass du die Berechtigungen auf 777 gesetzt hast, gehe ich davon aus, dass du Shellzugriff auf den Server hast.
Dann könntest du ja auch einfach vom Betriebssystem einen Cronjob starten lassen. Also in /etc/daily oder /etc/cron.d oder crontab -e oder was auch immer dein Server nutzt.
 

krahni

Mitglied
7. Juli 2022
44
6
O.K., nach ein bisschen Besinnung findet man auch das - mangels ausführlicher Dokumentation - heraus ...
Nicht das "$this->setFinished($res)" übersehen ;) - das kriegt der Cron-Job beim Demo-Plugin ja nur per rnd
Also wenn die Jobs abgeschlossen werden klappt's auch mit dem Timing solange jemand den Shop benutzt
 

Ähnliche Themen