6
votes

Php simultané via cron

J'ai quelques scripts qui doivent être exécutés simultanément en tant que processus distincts. Mon plan est d'avoir un travail cron qui exécute plusieurs instances de ces scripts à un intervalle défini. Est-ce une bonne idée? Quels sont les avantages / inconvénients à cette approche? Y a-t-il d'autres options que je dois envisager?

Bottomline: J'essaie d'imiter multithreading. Toutes les conditions de race seront traitées via le code (par exemple, des statuts de réglage dans dB, etc.). Les scripts sont censés traiter des tâches intensives (par exemple, créer des vignettes, etc.).


0 commentaires

5 Réponses :


5
votes

Vous pouvez utiliser le forking. Le script de démarrage chargerait toutes les configurations et initialisations par défaut, puis les processus enfants à fourche pour effectuer le traitement. Il pourrait ensuite surveiller les processus pour voir s'ils fonctionnent toujours. http://php.net/manual/fr/funck.pcntl-funck.php


0 commentaires

0
votes

ne PHP n'a pas Fourche () ? Bien que ce n'est pas vraiment multithreading, c'est un moyen de base de co-routines.


0 commentaires

2
votes

Eh bien, si vous en avez besoin comme un cronjob, allez-y. Si vous souhaitez plusieurs processus, vous souhaitez probablement utiliser PCNTL_FORK Pour créer plusieurs instances du même script.


0 commentaires


0
votes

Un con d'utilisation de cron est qu'il exécutera une copie de votre script à l'intervalle que vous avez définie, quel que soit le nombre de processus de script exécutés déjà. Cela signifie que les scripts ont besoin d'un moyen de communiquer les uns avec les autres afin qu'un maximum de n scripts ne soit maintenu simultanément (les scripts excédentaires peuvent simplement quitter immédiatement).

Une alternative à cron pourrait être Supervisord qui exécutera un nombre configurable de scripts et surveiller chacun de sorte que la sortie sont révisées.


0 commentaires