Page 1 sur 1

Durée maximale de requête

Posté : 15 juin 2012, 11:36
par piotrowski-s
Bonjour à tous,

j'ai une confrontation technique, en fait je me pose la question, je suis en train de créer un système qui va gérer des dossiers, environ cent milles par an,

le soucis c'est que chaque jours, les dossier doivent faire l'objet d'une actualisation des taux d'intérêts je penses donc créer une page qui fera pour chaque dossier avec un while,

mais je sais que parfois quand les requêtes durent trop longtemps mysql abandonne, donc je me poses la question si je dois faire ce genre de chose actualisation dossier par dossier avec un while, y'a il un moyen d'y parvenir?


D'avance merci.

Re: Durée maximale de requête

Posté : 15 juin 2012, 11:43
par xTG
Ce n'est pas mysql qui abandonne à mon avis mais PHP à cause du time_limit configuré à 30secondes dans le php.ini ;)

Pour palier à ce problème tu peux décomposer ton script par bloc.
En gros exactement la même chose qu'un script de pagination pour l'affichage mais qui ferrai des traitements.

Ou sinon revoir ton schéma de BDD pour exporter le taux d'intérêt dans une table avec une jolie relation N->1.
Ainsi tu ne mettrais pas à jour N n-uplets mais un seul.

Re: Durée maximale de requête

Posté : 15 juin 2012, 12:00
par piotrowski-s
si je change le php.ini cela peut fonctionner? y'a t'il un moyen de calculer la durée théorique d'une requête?

Re: Durée maximale de requête

Posté : 15 juin 2012, 12:06
par xTG
Il serait mieux de revoir ton code et de l'optimiser ainsi que la structure des données.
Car dans deux mois tu tomberas surement sur un autre problème, tu ferras quoi ? Encore augmenter le temps d'exécution maximum ?

Re: Durée maximale de requête

Posté : 15 juin 2012, 13:25
par moogli
hum, y a un mec qui modifie la chose pour chaque dossier ou c'est un comportement purement automatique ?

Parce que dans le second une tache planifiée et une procédure stockée sur le SGBD semble le plus approprié.

Comme l'indique xTG changer le time out n'est pas forcément une bonne idée. tu peux très bien lancer ce script en ligne de commande (a partir de tache planifiée, ou lancer depuis une commande manuelle depuis un script mais toujours depuis un shell) qui ne tiendra pas compte du timeout.

suivant la complexité de la modification et le nombre de tuple cela peux prendre du temps et php n'attendra pas, et même, je pense, a éviter si tu ne veux pas finir par "bloquer" le serveur :).

sinon comme indiqué avant : traitement par lot.


@+

Re: Durée maximale de requête

Posté : 15 juin 2012, 14:18
par piotrowski-s
non en fait c'est un calcul d'intérêt donc il y a une date de départ, une date de fin (la date du jour) un taux et un montant principal.

les taux changent pour chaque dossiers.

je veux faire cela en traitement de fond pourquoi pas en travail de nuit.

Je ne sais pas combien cela peut prendre.

Re: Durée maximale de requête

Posté : 15 juin 2012, 17:45
par piotrowski-s
si j'utilises un cron, il n'y aura pas de timeout?

Re: Durée maximale de requête

Posté : 15 juin 2012, 19:10
par Mazarini
Bonjour,

Tu peux également ne calculer ce montant que quand tu en as besoin, surtout s'il change tout les jours.