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