2009-02-17 5 views
0

Je travaille sur un site web pour un client, en PHP/MySQL. Ils sont un éditeur, et le site doit montrer si le livre que vous regardez est en stock avec leur distributeur.Comment afficher au mieux un fichier stock dynamique?

Le fichier stock est un fichier CSV sur le FTP du distributeur. Ce fichier est mis à jour à une certaine heure tous les soirs. Jusqu'à présent, j'ai écrit un script en PHP qui copie le contenu du fichier sur le serveur web. Je vais ensuite obtenir les informations sur le stock de cela et le coller dans la base de données des livres MySQL.

Existe-t-il un moyen de faire que le script PHP de transfert de fichiers ne s'exécute qu'une fois par jour, après que le fichier a été mis à jour sur le FTP du distributeur? Est-ce la meilleure façon de faire cela?

Répondre

5

La manière classique d'automatiser les tâches répétitives consiste à utiliser cron. Vous pouvez modifier votre configuration cron à partir de la ligne de commande en utilisant crontab -e. Le fichier suit le format suivant:

# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23) 
# | | .---------- day of month (1 - 31) 
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
# | | | | | 
    * * * * * command to be executed 
1

La meilleure façon pour faire face à un tel scénario serait une tâche cron comme mentionné ci-dessus, j'ai eu une situation similaire il y a un an mais la seule différence étant que je ne savais pas quand le fichier allait entrer et combien. J'ai créé un script php qui surveillait le dossier de téléchargement ftp et qui rand toutes les 10 minutes et quand chaque fichier arrivait il était traité (Read et les données stockées dans une base de données) et ensuite je le déplaçais dans un autre dossier appelé et un autre appelé a échoué s'il ne réussissait pas à lire le fichier. J'espère que cela aide - je pensais juste partager.

Questions connexes