即使用户离开页面,也要执行php脚本

即使用户离开页面,也要执行php脚本,php,background-process,Php,Background Process,我想运行一个php脚本,在用户指定的时间内从其他站点(类似于爬虫)收集数据。如果用户选择爬行5分钟,php将启动并运行5分钟,即使用户离开页面。然后他返回并查看结果。忽略用户中止-设置客户端断开连接是否应中止脚本执行 >有很多事情需要考虑,比如脚本执行超时。一种更“进取”的方法是将工作转移到作业或消息队列中 我认为您应该看看crontab/cronjob(如果您使用的是linux Web服务器) 然后,您可以创建一个数据库,其中包含应爬网的内容以及爬网对象 如果您没有登录系统,则应将爬网结果

我想运行一个php脚本,在用户指定的时间内从其他站点(类似于爬虫)收集数据。如果用户选择爬行5分钟,php将启动并运行5分钟,即使用户离开页面。然后他返回并查看结果。

忽略用户中止-设置客户端断开连接是否应中止脚本执行


<> >有很多事情需要考虑,比如脚本执行超时。一种更“进取”的方法是将工作转移到作业或消息队列中

我认为您应该看看crontab/cronjob(如果您使用的是linux Web服务器)

然后,您可以创建一个数据库,其中包含应爬网的内容以及爬网对象

如果您没有登录系统,则应将爬网结果链接到用户浏览器中的会话或cookie

创建脚本和数据库后,可以使用SSH/Telnet中的以下命令使收集数据的php脚本每分钟运行一次:

* * * * * php /path/to/script.php *****php/path/to/script.php
如果您无法访问SSH/Telnet shell,大多数控制面板都有crontab功能。

谢谢您的回答。我已经搜索了工作队列,但我无法理解它们。如果5个用户希望我对一个站点进行爬网,爬网是“同时”开始还是一个接一个地开始?这取决于apache的设置方式。通常,它会在到达php.Hi之前限制请求。谢谢你的回答。对于带有cookies的数据库和cron作业,我的想法完全相同。但到目前为止,我还不确定是否可以从php内部调用cron作业。你知道这是怎么做到的吗?我对我读过的教程有点困惑,因为大多数教程都使用命令行中的cron作业。