我已经创建了一个php/mysql刮板,它运行良好,并且不知道如何最有效地将它作为cron作业运行。php cron作业可以运行多长时间?我做得对吗?
有300个网站,每个网站有20 - 200页被刮掉。需要4到7个小时才能清除所有网站(取决于网络延迟和其他因素)。刮板需要每天进行一次完整的运行。
我应该将其作为一个运行整个4-7小时的cron作业,还是每隔7小时运行一次,或者每隔10分钟运行一次,直至完成?
该脚本被设置为从所述的cron这样运行:
while($starttime+600 > time()){
do_scrape();
}
哪个将运行do_scrape()函数,它在一个时间擦伤10页的URL,直到(在这种情况下)600秒具有通过。 do_scrape可能需要5到60秒才能运行。
我在这里问这里,因为我无法在网上找到关于如何运行这个的任何信息,并且对每天运行这个有点警惕,因为php并没有真正设计为7小时运行一个脚本。
我写了它在香草PHP/MySQL,它运行在削减debian VPS只安装了lighttpd/mysql/php5。我用6000秒(100分钟)的超时运行它没有任何问题(服务器没有摔倒)。
任何有关如何去完成这项任务的意见,表示赞赏。我应该注意什么等。?还是我要执行这一切都错了?
谢谢!
欢呼声回复。由于后处理的数量很少(每〜2-5秒的页面请求约150ms),我们决定坚持使用单片结构而不是卷曲脚本和处理脚本。 我们使用多卷曲一次获得10个URL,所以它是半多线程的,虽然不理想。 Python将是理想的,但它是一个用我们所知道的(php)来快速完成工作的例子。 谢谢! – Rob