Question

Je suis tout à fait nouveau dans le domaine des emplois cron, je ne sais donc pas par où commencer à les apprendre; quand, pourquoi ou comment les utiliser avec mon application Zend Framework ou PHP en général.

Quelqu'un peut-il expliquer le processus, avec un exemple, ou recommander de bonnes ressources pour commencer?

Était-ce utile?

La solution

Les tâches Cron sont un mécanisme permettant d'automatiser les tâches dans le système d'exploitation Linux. Et a très peu à faire avec Zend Framework. Le framework peut vous aider à développer une tâche cron avancée en php cependant. Mais vous devrez alors configurer votre tâche cron dans le shell.

googler pour & "comment configurer le travail cron &"; a révélé ce lien en haut:

http://www.adminschoice.com/docs/crontab.htm

Je suis certain que cet article vous aidera.

P.S.

En tant que commande à exécuter, vous devez mettre quelque chose comme:

/usr/local/bin/php -f <path_to_your_php_script>

où le premier chemin est le chemin complet de votre exécutable php cli, qui peut différer sur votre machine. Vous pouvez vous en assurer en lançant cette commande:

which php

Bonne chance avec les tâches cron;)

Autres conseils

Le Zend Framework étant un ensemble de composants à couplage faible, vous pouvez utiliser les composants que vous aimez dans tous les scripts PHP, y compris les scripts CLI. Vous devrez cependant vous assurer que PHP peut trouver les classes Zend Framework appropriées, vous devez donc ajouter le chemin de la bibliothèque Zend Framework à votre include_path. Ensuite, vous pouvez configurer le chargement automatique avec Zend_Loader_Autoloader (ZF & Gt; = 1.8) ou Zend_Loader (ZF & Lt; 1.8) pour vous simplifier la vie. Maintenant, vous devriez avoir accès à tous les composants de Zend Framework que vous pouvez utiliser à volonté.

Comme tous les autres scripts ou programmes, ce script PHP peut être utilisé naturellement dans un travail cron. Une dernière chose à noter est que vous devrez vous assurer que l’utilisateur exécutant vos tâches cron dispose d’un accès en lecture au chemin de la bibliothèque Zend Framework, sinon PHP ne pourra pas lire les fichiers Zend Framework.

Si votre question visait l'utilisation du composant MVC dans les scripts CLI, je dois admettre que je n'ai aucune expérience dans ce domaine. Je suppose qu’un effort non négligeable doit être consenti pour mettre en oeuvre les classes appropriées de requêtes, de réponses, de cartes et de routes.

EDIT:

Veuillez consulter cet article pour plus d'informations.

Peut-être qu'un exemple réel aiderait. Il y a quelques années, j'ai travaillé sur un projet de calendrier d'événements utilisant le Zend Framework. Dans ce calendrier, un utilisateur peut créer un événement et associer une ou plusieurs dates à l'événement. Naturellement, j'ai implémenté ceci en tant que jointure plusieurs-à-un dans ma base de données, mais cela signifiait que, pour attacher une date, l'événement devait exister en premier. Cependant, je souhaitais autoriser les utilisateurs à ajouter des dates lorsqu'ils ils créaient l'événement, et non après ils ont créé un événement. En d'autres termes, je voulais que l'utilisateur modifie tous les aspects d'un événement en même temps et ne l'envoie que lorsqu'il cliquait sur & "Enregistrer. &";

J'ai résolu le problème en insérant un nouvel enregistrement d'événement vide dans la base de données lorsque l'utilisateur commence à créer un enregistrement d'événement. Cet enregistrement vide est rempli et enregistré lorsque l'utilisateur clique sur & "Enregistrer &"; Ou est supprimé lorsque l'utilisateur clique sur & "Annuler &". Le problème est survenu lorsque les utilisateurs ont quitté la liste sans cliquer sur & Quot; annuler & Quot; et que l'enregistrement d'événement vide était resté dans la base de données. Finalement, la base de données se remplirait avec ces événements vides de sens, et les choses pourraient devenir laides.

J'ai écrit une fonction appelée & "maintenance () &" ;, qui supprimait, entre autres, tous les enregistrements non sauvegardés de plus de 24 heures. J'ai configuré un travail cron qui s'exécutait de nuit et exécuté un script php en ligne de commande qui exécutait maintenance ().

Autres éléments pour lesquels vous pourriez utiliser un travail cron:

  • Envoyez un lot de courriels à de nouveaux utilisateurs. (toutes les 5 minutes?)
  • Mettre à jour les statistiques des utilisateurs (toutes les heures?)
  • Effectuez des opérations gourmandes en ressources lorsque les serveurs ne sont pas encombrés de trafic (toutes les nuits à minuit ou une fois par semaine le dimanche soir?)
  • Tout autre événement qui ne se produit pas en réponse à une demande de l'utilisateur (ce que Jeff appelle & "; hors bande &";).

vous pouvez également être intéressé par comment stocker des tâches cron avec ZF

Voici un lien vers un bon moyen d'implémenter un système cron avec Zend Framework:

tâches cron dans les applications Zend Framework

Personnellement, je l'ai adapté pour que le paramètre puisse être dynamique, mais la base est la même: -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top