J'ai quelques fonctions qui prennent du temps et (potentiellement) beaucoup de mémoire dans mon application web LAMP. La plupart de ces fonctions seront exécutées toutes les minutes via cron (dans certains cas, le travail cron exécutera plusieurs instances de ces fonctions).Gestion de la mémoire PHP
Depuis la mémoire est finie, je ne veux pas rencontrer des problèmes où je suis en train d'exécuter une fonction de l'environnement ne peut plus gérer. Quelle est une bonne approche pour traiter les problèmes de mémoire potentiels?
Je devine que je dois déterminer la quantité de mémoire est disponible pour moi, la quantité de mémoire chaque fonction nécessite avant l'exécuter, de déterminer quelles sont les autres fonctions sont en cours d'exécution par le Cron et leur utilisation de la mémoire, etc.
De même, je ne veux pas rencontrer le problème où une certaine fonction obtient d'une manière ou d'une autre une priorité d'exécution sur d'autres fonctions. Si une priorité est donnée, j'aimerais avoir le contrôle de quelque façon que ce soit.
Plus important encore, pourquoi faites-vous un Cronjob toutes les ** minutes **? Une partie du problème peut être le cron est simpyl essayer d'en faire trop à la fois. Si vous pouviez expliquer le problème et votre solution proposée, nous serions en mesure de donner des réponses mieux faites à votre problème de mémoire spécifique. Il existe différentes approches pour différents problèmes. Est-ce beaucoup de données provenant d'une base de données? Un fichier plat? Simplement une tonne de calculs mathématiques? Chacun aurait ses propres ensembles d'étapes d'optimisation. S'il vous plaît étoffer ce que votre problème est afin que nous puissions donner une réponse appropriée :). – CogitoErgoSum
Je pense que vous devez être plus descriptif et indiquer ce que vous faites dans ce travail cron. Les économies évidentes ne consisteraient pas à charger des fichiers volumineux en mémoire, à utiliser les fonctions de streaming, à extraire un grand ensemble de résultats en mémoire, à utiliser un curseur sur l'ensemble d'enregistrements plutôt que d'extraire toutes les données dans un tableau. –