OVH Community, votre nouvel espace communautaire.

Tâche cron avec boucle while infinie : autorisée ?


Minimus
20/11/2015, 21h52
Ok merci, je vais essayer de revoir mon script dans ce cas

Jikoo
17/11/2015, 22h34
Non, ce n'est pas autorisé sur du mutu car votre script à une durée d'exécution limitée par OVH.
Si vous voulez faire ça, il faut prendre un serveur dédié (et encore, il y a par défaut toujours une durée d'exécution limitée... mais au moins vous pourrez la changer, l'augmenter).
Pour info: http://php.net/manual/fr/info.config...execution-time

Minimus
17/11/2015, 20h55
(Un modo peut-il déplacer ce sujet dans le sous-forum Programmation ? je pense que j'aurai plus de réponses)

Minimus
31/10/2015, 13h49
Bonjour,

J'ai fait un petit jeu multijoueur (browser game) hébergé chez OVH, et dans le cadre de certaines actions, j'ai besoin d'exécuter un script PHP comprenant une boucle while infinie, qui fait une requête SQL update dans ma BDD par seconde.

J'ai créé une tâche cron sur mon manager OVH pour exécuter ce script chaque heure (mais ça pourrait être chaque jour ou seulement chaque semaine puisque de toute façon le script est censé boucler indéfiniment une fois qu'il a été lancé la première fois)

Tout a bien marché pendant plusieurs jours, jusqu'à ce que je me rende compte que la tâche était passée en mode "suspendue" dans mon manager, et le script ne se lançait plus.

J'ai regardé mes logs pour les tâches cron, et depuis le début il y avait ce message à chaque exécution :
ERROR - CRON TASK INTERRUPTED BY OVH - reason: the duration of your script exceeded the maximum permitted (3600 seconds)

Puisque le script contient une boucle infinie, il est évident qu'il dépasse 3600 secondes, mais dans la mesure où son action me semble peu gourmande (1 requête UPDATE sur un seul élément de la BDD / seconde), je pensais que ça ne poserait pas de problème.

Est-ce qu'il y a un moyen de contourner ça ? là j'ai relancé la tâche cron sans problème, mais je me doute qu'elle sera suspendue dans quelques jours

Merci