我用php写了一些电视指南刮板。我从cronjob执行的脚本运行它们。该脚本每分钟运行一次,并检查是否需要启动刮板。这样,我可以更改和管理这些抓取作业,而无需修改cron本身。
这些抓取脚本在运行时中会有所不同,有些抓取脚本的时间不超过1分钟,而其他抓取脚本的时间最多为4个小时。当我一个接一个地运行它们时,没有问题。但是,当我尝试同时运行两个脚本时-一个或两个脚本挂起。导致来自cron的电子邮件:
sh: line 1: 700865 Hangup /usr/local/bin/php /home/id789533/domains/erdesigns.eu/public_html/tvg_schedules/scraper.php --country=dk --provider=1 --scraper=tv2 2>&1
/ usr / local / .....是脚本的命令,从调度程序脚本中调用。我只是找不到与此消息相关的任何内容,而且我也不知道如何解决它。如果需要,我可以发送脚本本身。
将提供所有建议和帮助。
[编辑]我还查看了资源使用情况,并且负载永远不会超过150mb和15%的负载。我的限制为400%和1GB。
我像这样从php脚本执行脚本:
shell_exec(sprintf("/usr/local/bin/php %s 2>&1", $scraper));
其中$scraper
是文件名。它像应有的那样执行脚本,但是过了一会儿我收到消息sh: line 1: 000000 Hangup
我可以肯定,它没有分配太多的内存,有人可以引导我采用正确的方式吗?我不知道现在在哪里。
PHP是一种用于Web的语言,具有诸如上限之类的功能,可以最大限度地延长执行时间,以确保脚本不会无限期运行,从而阻止了资源。因此,PHP不是此任务的最佳选择。
如果只是简短的脚本,我建议您将其转换为BASH或Python脚本。但是,如果要坚持使用PHP,请检查php.ini
文件中是否有限制执行时间的设置。