2011-01-06 6 views
0

Hallo Ich habe ein Joomla-Plugin gemacht, das einige externe Inhalte bekommt und in einer HTML-Datei speichert. Wollte wissen, dass es möglich ist, dieses Plug-in in regelmäßigen Abständen automatisch auszuführen.Joomla Ist es möglich, ein Plugin automatisch in regelmäßigen Abständen auszuführen

Wenn ja, was wird der Prozess sein?

Oder die andere Möglichkeit ist es, dieses Skript in eine Datei zu legen und automatisch in regelmäßigen Abständen auszuführen.

Bitte helfen.

Antwort

4

Ja, Sie werden Cron verwenden, um eine wiederholte geplante Aufgabe wie diese durchzuführen. siehe this primer auf cron als Beispiel, hier ist meine cron-Datei für ein Skript, das ich alle 30 Minuten laufen Google Safesites Informationen zu aktualisieren ...

# m h dom mon dow command 
30 * * * * /usr/bin/php /OBFUSCATED/PATH/TO/MY/SCRIPT/listupdater.php 

dies einzurichten Sie SSH-Zugriff auf Ihren Server benötigen und von der Kommandozeile werden Sie

crontab -e 

Sie lesen möchten geben, wie in einem vi-Stil-Editor bearbeiten ...

+0

Hey danke für die Antwort das ist genau das, was ich suchte . Das löst mein Problem. Nochmals vielen Dank. –

0

Joomla ist PHP und PHP wird nicht in regelmäßigen Abständen ausgeführt. Sie müssen es von einem externen Prozess auslösen. Glücklicherweise bieten Ihnen alle modernen Betriebssysteme Möglichkeiten, dies zu tun. Es kann ein Cron-Job (für unix-artige Betriebssysteme) oder ein geplanter Task (Windows) sein.

Was Sie wahrscheinlich wollen, ist ein Kommandozeilen-PHP-Skript hinzufügen, das eine Seite (php <name of script>) ausführt. Joomla hängt ziemlich stark von GET-Parametern ab, um das Routing zu machen ... also solltest du vielleicht erwägen, das nicht als Joomla-Plugin auszuführen, sondern als willkürlichen Code, der in einer .php-Datei sitzt und trotzdem das Joomla-Framework benutzt. Oder schreibe eine Alternative zu Joomlas index.php, die $ _GET mit den Werten füllt, die benötigt werden, um zu einer Seite zu gelangen, auf der dein Plugin seine Sache machen kann.


Alternativ können Sie ein Plugin erstellen, die auf jede Anforderung lädt, die (mit Hilfe einer Datei oder Datenbankfeld) überprüft, ob es vor kurzem ausgeführt wurde und sofort zurück, wenn es nichts zu tun haben . Natürlich ist das weniger genau: Es kommt auf einen stetigen Strom von Seitenaufrufen an. und verursacht Verzögerungen für Ihre Besucher, wenn sie derjenige sind, der eine Seite anfordert, die einen solchen Wartungsauftrag auslöst.

Verwandte Themen