定时任务 PHP 挂断

Cronjob PHP Hangup

我在 php 中写了一些 tvguide scrapers。我 运行 它们来自由 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 文件以了解限制执行时间的设置。