Comment exécuter plusieurs requêtes automatiquement ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment exécuter plusieurs requêtes automatiquement ?

Re: Comment exécuter plusieurs requêtes automatiquement ?

par AB » 22 sept. 2009, 18:06

Je pensais que tu étais parti pour essayer des taches automatisées. Renseignes toi sur les termes "cron" ou "tâches automatisées" et oublies ces meta refresh
Il y a un sujet sur les crons ici

Re: Comment exécuter plusieurs requêtes automatiquement ?

par toony.m » 21 sept. 2009, 15:03

Belle comparaison!

Effectivement, la solution que j'ai trouvé et de sauvegarder la dernière action effectuée dans une table et de rafraichir la page toutes les 10min.
Comme ça, tout marche bien.

Merci!

[EDIT]Eh ba non, ca marche pas...
La META refresh ne fonctionne pas tant que le script php est exécuté...
Pareil si je garde la META et execute le script dans une IFRAME....

Si quelqu'un à une idée..

Re: Comment exécuter plusieurs requêtes automatiquement ?

par AB » 16 sept. 2009, 18:03

Un pointeur c'est un terme générique pour dire "mémoriser l'endroit où tu en est dans ton traitement" :wink:
Donc tu enregistre d'une manière ou d'une autre ce que tu as déjà fait pour pouvoir continuer le processus au bon endroit au traitement suivant.

Un pointeur en informatique c'est l'équivalent d'un marque page en littérature :)

Re: Comment exécuter plusieurs requêtes automatiquement ?

par toony.m » 16 sept. 2009, 17:44

Merci! Ca m'interesse !

Mais je ne sais pas ce qu'est un pointeur...
Hum hum. Je vais faire des recherches...

Re: Comment exécuter plusieurs requêtes automatiquement ?

par AB » 16 sept. 2009, 17:36

Ben ne pourrais-tu pas avec un seul fichier php, générer différents nettoyages, en enregistrant un pointeur pour ceux déjà exécutés dans un fichier texte ou en bdd... ? Cela ne te ferait qu'un cron à créer mais que tu pourrais faire exécuter à interval de temps défini.

Re: Comment exécuter plusieurs requêtes automatiquement ?

par toony.m » 16 sept. 2009, 17:21

Résumé:
un fichier php exécute une fonction nettoyage(). Il met env. 4min30 pour l'executer.
Je cherche a exécuter plusieurs fois cette page php mais avec des paramètres différents.

Si je met tout ds un même fichier:
nettoyage(1);
nettoyage(2);
nettoyage(3);
....
ca va coincer.

Donc, un cron pourquoi pas mais ca me fait faire bcp de cron à créer... :shock:

Re: Comment exécuter plusieurs requêtes automatiquement ?

par AB » 16 sept. 2009, 16:51

J'ai peut être pas saisi ton problème (faudrait être plus précis) mais une tâche automatisée peut-être, un cron ?

Re: Comment exécuter plusieurs requêtes automatiquement ?

par toony.m » 16 sept. 2009, 14:45

Merci à tous pour vos idées mais je n'execute pas de boucle mais il est vrai que mes requetes sont tres longues à exécuter (4min30 en moyenne).
Donc pas de soucis pour les coupures.

Le problème, c'est pour les enchainer...
Je dois mettre à jour mon fichier php et l'uploader après que chaque requête soit exécutée...
Et c'est long.... :cry:

Voyez-vous mieux mon problème ?

Re: Comment exécuter plusieurs requêtes automatiquement ?

par thehawk » 16 sept. 2009, 12:06

Je ne pense pas que sleep soit une bonne chose dixit la doc :
max_execution_time entier

Fixe le temps maximal d'exécution d'un script, en secondes. Cela permet d'éviter que des scripts en boucles infinies saturent le serveur. La configuration par défaut est de 30 secondes. Lorsque PHP fonctionne depuis la ligne de commande, la valeur par défaut est 0.

Le temps d'exécution maximum n'est pas affecté par des appels systèmes tels que sleep(). Reportez-vous à la fonction set_time_limit() pour plus de détails.

Vous ne pouvez pas modifier la valeur de cette directive avec ini_set() lorsque PHP est configuré en safe mode. Le seul moyen de le faire est de désactiver le safe mode ou de changer la valeur dans php.ini.

Votre serveur web peut avoir d'autres configurations de la durée limite d'exécution qui peuvent également interrompre PHP. Apache a une directive Timeout et IIS a une fonction CGI pour cela. Par défaut, elles valent toutes les deux 300 secondes. Reportez-vous à la documentation de votre serveur web pour plus de détails.
http://www.php.net/manual/fr/info.confi ... ution-time

En mon sens, je pense qu'un découpage par plage de donnée du genre : index.php?min=0&max=10 etc serait plus approprié


EDIT :
ce code :
<?php

for ($i = 0 ; $i <= 120 ; $i++)
{

	echo $i.'<br />';
	sleep(1);
	
}

?>
Avec un limite de 60 secondes affiches a la 60ème secondes :
Fatal error: Maximum execution time of 60 seconds exceeded in .... on line 9.
CQFD

Bye Hawk

Re: Comment exécuter plusieurs requêtes automatiquement ?

par Genova » 16 sept. 2009, 12:01

@Superpilou : si ton script lance une boucle infinie oui ça sera pas bon effectivement ... d'où l'importance de toujours bien tester ses scripts, surtout quand il s'agit de batchs qui vont agir sur l'ensemble de la base de donnée.

Re: Comment exécuter plusieurs requêtes automatiquement ?

par agité » 16 sept. 2009, 11:56

function nettoyage($array()){
  foreach() {

    sleep()
  }
}

nettoyage (array(100 => 75, 75 => 50, 25 => 01));
Ca te permet d'avoir toute les entrées d'un coup et de faire des sleep() au cas ou l'exécution prends du temps. Mais je sais pas si c'est ce que tu cherche à faire.

Re: Comment exécuter plusieurs requêtes automatiquement ?

par Superpilou » 16 sept. 2009, 11:16

Désactiver le temps maximum ne serait pas enlevé une sécurité à php?

Re: Comment exécuter plusieurs requêtes automatiquement ?

par Genova » 16 sept. 2009, 10:58

Salut,
pourquoi ne pas désactiver le temps d'execution maximale de la page ?
set_time_limit(0)

Comment exécuter plusieurs requêtes automatiquement ?

par toony.m » 16 sept. 2009, 10:20

Bonjour à tous,

Question du jour:
J'ai un fichier php qui traite une fonction. Or cette fonction met beaucoup de temps a être traitée. Ex:
function nettoyage(param1,param2){
....
}

nettoyage (100,75);
nettoyage (75,50);
nettoyage (50,25);
nettoyage (25,01);
Comment faire pour appeler plusieurs fois une fonction mais que cela soit considéré comme différente requêtes (et éviter ainsi les coupures du serveur) ?

Ou sinon comment exécuter des fichier php les uns après les autres... #-o