我正在为PHP / MySQL的客户端开发网站。他们是出版商,该网站需要显示您正在查看的图书是否与其经销商有关。
库存文件是分销商FTP上的CSV文件。此文件每晚在特定时间更新。到目前为止,我已经用PHP编写了一个脚本,它将文件的内容复制到Web服务器。然后我将从中获取库存信息并将其粘贴在MySQL书籍数据库中。
有没有办法让文件传输PHP脚本每天只运行一次,在分发器的FTP上更新文件后?这是最好的方法吗?
答案 0 :(得分:5)
自动执行重复任务的传统方法是使用 cron 。您可以使用crontab -e
从命令行编辑cron配置。该文件遵循以下格式:
# .---------------- 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 :(得分:2)
如果您使用的是Windows服务器,则需要使用计划任务;如果使用的是unix,则需要使用cronjob。以下是使用cron的一些信息: http://www.clockwatchers.com/cron_main.html http://www.clickmojo.com/code/cron-tutorial.html 和win任务调度程序: http://www.iopus.com/guides/winscheduler.htm
答案 2 :(得分:1)
处理这种情况的最佳方式是如上所述的cronjob,一年前我有类似的困境,但唯一的区别是我不知道文件什么时候进来以及有多少。我创建了一个监控ftp上传文件夹的php脚本,每隔10分钟就会调用一次rand,当每个文件都进来时,它会被处理(读取和数据存储在数据库中),之后我会将它移动到另一个名为processed的文件夹中如果没有成功读取文件,则另一个称为失败。我希望这有帮助 - 我以为我会分享。