Cronjobs in Oxid?

Und gleich noch eine Einsteigerfrage:

Gibt es in Oxid Vorkehrungen für zeitgesteuerte Prozesse (vgl. Magento Cron), die man in Modulen benutzen kann? Oder müssen hierfür jeweils separate Crontab-Einträge für jeden Einsatzfall erstellt werden?

Und falls letzteres der Fall sein sollte, muss sich ja mein Script, welches per Cronjob gestartet werden soll, irgendwie Oxid gegenüber authentifizieren, um Zugriff auf nicht-öffentliche Daten zu bekommen (z.B. nicht veröffentlichte Produkte), oder nicht?
Gibt es hierfür ein Tutorial?

Gruß,

Marco

es gibt die Möglichkeit Preise zu einer definierten Zeit zu ändern, auch via Cron

evtl. hilft Dir das weiter?

im Prinzip hat sich seit den anderen Threads zu diesem Thema nichts geändert.
Richtige cronjobs kann man nur serverseitig/beim Hoster anlegen.
Im Shop selbst könnte man ähnliche Strukturen, wie Ray erwähnt hat, anlegen, die beim Aufruf des Shops geprüft und ggf ausgeführt werden.
D.h. du musst eigenes Modul bauen, das möglichst bei jedem Shop-Aufruf auch aufgerufen wird und schaut, ob es solche Cronjobs gibt und ob sie ausgeführt werden müssen. Aber es wird wie gesagt erst beim Aufruf des Shops ausgeführt und nicht automatisch zu der gewählten Zeit geschehen. Keine Shopbesucher = keine Cronjobs. Ich denke, hier kannst du wohl das meiste von den automatischen Preisen abschauen und musst nur noch die geeignete Funktion finden, wo du den Aufruf unterbringst.

Hallo Marco,

was willst Du denn eigentlich erreichen?

@vanilla_thunder hat schon Recht: Ein echter Cron-Job kann nur zeitgesteuert vom Server aus über die Cron Tab angestossen werden, Hier ist es natürlich immer möglich, z.B. ein PHP-Script anzustossen. Die “unechten” Cronjobs sind darauf angewiesen, dass jemand, z.B. der Besucher eines Shops, einen PHP-Prozess aufruft - und zwar zu der Zeit (oder X früher/später), die Du vorgibst - bringt also nix bei schlecht besuchten Shops.

Gruß

Hallo zusammen,

und danke erst einmal für die ganzen Hinweise.
Beimir geht’s wirklich um klassische Creonjob-Tasks. In diesem Fall das zyklische Importieren bzw. Exportieren von Daten von einer externen Schnittstelle.

Ich wollte nur wissen, ob es nicht schon einen gegenrellen Cronjob für Oxid gibt (eben wie bei Magento), wo man einfach weitere Tasks einklinken kann. Ich kann abe auch mit einem separaten, für meine Bedürfnisse eingerichteten Cronjob leben.

In den neueren Oxid Versionen gibt es die Klasse oxmaintenance, die kannst du per Modul verwenden:

class my_oxmaintenance extends my_oxmaintenance_parent {
    
    public function execute(){
        parent::execute();
        //Dein code hier
    }
}

Die wird auch von den automatischen Preis Updates verwendet

Ist die Idee dann, dass jeder Entwickler das Zeitmanagement der Crons selbst entwickeln?

Ich stell mir das ja so vor, dass man die Datei jede 5 Minuten bzw. so oft wie der kleinste gemeinsame Teiler aller Cronjobs ist aufruft und im Framework dann alles andere gemacht wird. Da ist nur so gut wie nichts bisher.

Also nicht falsch verstehen, dass wir das nutzen wollen - wir leben wunderbar mit eigenen Skripten im /bin/ Verzeichnis. Aber schön wäre es sicherlich, falls oxid weiterhin Interesse an Neukunden hat :wink: