Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2007, 01h30   #1
Invité régulier
 
Inscription : septembre 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 30
Points : 6
Points : 6
Par défaut Tâche périodique avec .bat

Bonjour à tous,

Voila mon problème :

A minuit, chaque jour, il faudrait que je vérifie si mon site doit envoyer un ou des e-mails grâce à une requête SQL.

Il faut donc que ce script soit lancé automatiquement à cette heure et sans la nécéssité d'une connexion d'un utilisateur.

J'ai demandé à mon professeur quel moyen était le mieux. La réponse : utiliser un .bat qui serait lancé périodiquement. Je ne sais cependant pas comment faire pour créer le .bat et encore moins comment le lancer périodiquement .

Quelqu'un pourrait-il m'aider, me donner un exemple?

Merci pour votre aide.
jf1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 09h08   #2
Membre confirmé
 
Inscription : mai 2006
Messages : 372
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2006
Messages : 372
Points : 234
Points : 234
a mon avis c'est pas la bonne rubrique du forum, le .bat c'est pas du php
kahya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 09h47   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Il y a par contre la possibilité de lancer des scripts php de manière périodique sur ton système sans intervention utilisateur. Plusieurs méthodes dans ce tutoriel

Si tu fais une recherche sur les forums PHP avec les mots "exécution périodique" tu devrais trouver beaucoup de réponses dont certaines qui expliquent meme une technique toute bete utilisant les tâches planifiées de windows.

Bon courage!
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 10h03   #4
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 330
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 330
Points : 1 659
Points : 1 659
Et pour les cron (voir le lien de koopajah), si ton serveur ne te permet pas de faire cela (hebergement mutualisé ou autre), il existe des site permettant de faire ça comme http://www.webcron.org/
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 14h09   #5
Invité régulier
 
Inscription : septembre 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 30
Points : 6
Points : 6
Merci, je connaissais déjà ces techniques suite à des recherches sur votre site par exemple et tout particulièrement sur le tuto qui est bien fait. Cependant, comme je le disais, mon professeur veut le .bat mais je ne sais rien du tout sur cela .

Quelqu'un pourrait-il m'aider?

Quoiqu'il en soit merci tout de même pour vos réponses
jf1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 15h18   #6
Invité régulier
 
Inscription : septembre 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 30
Points : 6
Points : 6
Pour être plus précis, je vous donne le message de mon professeur :

Une solution est de faire un script à part, avec un time out illimité (set_time_limit(0), de mémoire) et de l'appeler par ligne de commande, via un .bat.

J'espère que cela vous permettra de m'aider à comprendre ce que cela veut dire

Merci encore pour votre aide!
jf1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 15h24   #7
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Citation:
Une solution est de faire un script à part, avec un time out illimité (set_time_limit(0), de mémoire) et de l'appeler par ligne de commande, via un .bat.
C'est à mon avis une mauvaise solution puisque ton processus va tourner en boucle toute la journée pour rien et sera arrêté à chaque redemarrage de apache.

Le cron est la meilleure solution pour toi.

Je suppose que tu es sur windows et que ton serveur web est sur ta machine et non sur le net ?
__________________
Etre à son compte, y'a rien de mieux !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 15h33   #8
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Pourquoi faire simple quand on peut faire compliqué, lit le tuto proposé par koopajah tu verras c'est je pense la meilleur solution.
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 15h37   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
dans tous les cas, ce que ton professeur souhaite c'est que tu utilises php en ligne de commande et non pas avec un navigateur. Ca te permet d'eviter d'avoir un navigateur ouvert qui charge en permanence.

donc tu fais un script infini (grace au set_time_limit) et ensuite tu utilises un .bat ressemblant a ca :

C:/wamp/php/php.exe C:/mes_scripts/mon_script_infini.php

(tu remplaces par les bons chemins) et ca devrait répondre aux attentes de ton professeur.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 15h47   #10
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Citation:
Envoyé par koopajah Voir le message
dans tous les cas, ce que ton professeur souhaite
Si on lit bien son post initial, la demande vient plutot de jf1985 à laquelle le professeur a répondu, probablement avec ses connaissances.

Avant de répondre à cette question il me semble impératif de savoir sur quelle plateforme se trouve le site en question. Ensuite il y a les bonne et les mauvaises solution. Un script tournant à l'infini pour effectuer une tache journalière, c'est sans nul doute une mauvaise solution.
__________________
Etre à son compte, y'a rien de mieux !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 15h58   #11
Invité régulier
 
Inscription : septembre 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 30
Points : 6
Points : 6
Mon serveur est en effet sur ma machine...pour le moment. Le site sera bientôt mis en ligne...je ne sais où!

Je réalise en fait un site pour une ville...pour mon professeur.

Si j'ai bien compris, ce que demande mon professeur, c'est de lancer une fois un script à l'aide de la console qui tourne en boucle...tt le temps. Est-ce bien ça? Je ne devrais donc pas exécuter mon .bat régulièrement. En effet ça parait lourd.

Merci pour votre aide
jf1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 16h00   #12
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
On t'a expliqué les solutions.
Soit dit en passant, tu vas surement mettre le site en ligne sur un serveur dédié et il y a de fortes chances que tu ne puisses pas modifier facilement l'environnement, ou lancer un script en ligne de commandes.

Il faut sérieusement te pencher du coté des AUTRES solutions (celles qui sont viables sur la durée) et donc regarder du coté de cron, de webcron, etc.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 16h03   #13
Invité régulier
 
Inscription : septembre 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 30
Points : 6
Points : 6
Ok je vais y penser.

L'embêtant avec le webcron, si je ne me trompe, c'est qu'il faut une URL.

Je ne pourrai donc pas tester mon script avant qu'il soit mis en ligne...
jf1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 16h05   #14
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
Ce que je ferais : tant que ton serveur tourne sur ton pc personnel, crée une tache planifiée windows
http://www.google.fr/search?sourceid...c3%a9e+windows

Celle ci executera la commande
Citation:
php -f c:\chemin\vers\ton\script.php
tous les jours.

Ensuite, lorsque ton site sera en ligne, oublie ça. Il sera probablement sur un mutualisé sous Linux. Selon l'hébergeur, tu pourras créer un cron Linux (chez OVH par exemple, on peut le faire). Sinon il faudra passer par un service de cron exterieur. Mais ne passe pas par ton ordi personnel pour lancer cette tache.
__________________
Etre à son compte, y'a rien de mieux !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 16h12   #15
Invité régulier
 
Inscription : septembre 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 30
Points : 6
Points : 6
Ok je vais faire ca!

Merci beaucoup pour votre aide à tous.

Je vous tiens au courant. Si ca tourne sur mon ordi je vous le dis
jf1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2007, 20h39   #16
Invité régulier
 
Inscription : septembre 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 30
Points : 6
Points : 6
Voila, ça tourne sur mon ordi...Nickel !

Lorsqu'il faudra héberger le site, je tenterai de faire adopter la solution "CRON" qui grâce à vos conseils avisés me semble maintenant la meilleure .

Merci encore à vous.

Bonne continuation
jf1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h34.


 
 
 
 
Partenaires

Hébergement Web