Question

Des choses très étranges se produisent dans phpMyAdmin (mySQL)....

La situation:
J'ai une table avec un seul champ contenant une valeur INT appelée « compte ».count était initialement défini sur 0.Une tâche cron appelle un script php toutes les heures qui incrémente le « compte » de un (SET count = count + 1).

Le problème:
Le problème peut être observé lorsque j'ouvre le tableau dans phpMyAdmin, puis que j'actualise immédiatement le navigateur :Je peux voir que le « compte » a été incrémenté environ 20 fois en moins d'une seconde.Le laisser tranquille pendant une minute, puis actualiser à nouveau le navigateur montre qu'il a été incrémenté des centaines de fois supplémentaires !Y a-t-il une boucle sans fin quelque part qui appelle ma tâche cron et incrémente le « compte » ?(Ne le pensez pas parce que j'ai mis à jour le script php de crob pour m'envoyer un e-mail lorsqu'il est appelé, et je ne reçois aucun appel...)

Est-ce que quelque chose comme ça est déjà arrivé à quelqu'un ?

La chaîne CRON :

*/15 * * * * /usr/bin/php -q /home/account_name/cron/cron.php test

Le script php :

<?php

class TestCommand extends CConsoleCommand {
    private $connection;

    public function run($args) {
        // Increment counter
        $this->connection=Yii::app()->db;
        $sql="UPDATE count_converts SET count=count+1 WHERE id=1";
        $command=$this->connection->createCommand($sql);
        $command->execute();
    }
 }

?>

MISE À JOUR:
Mystère résolu:J'ai découvert que cela était dû à une mauvaise boucle for imbriquée ailleurs (les deux boucles utilisaient $i)...

Était-ce utile?

La solution

Pourquoi y a-t-il un <br /> et un saut de ligne dans votre chaîne cron ?Changez-le en

*/15 * * * * /usr/bin/php -q /home/account_name/cron/cron.php test

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