当前位置: 首页 > 面试题库 >

最好的方法来管理长期运行的PHP脚本?

石思淼
2023-03-14
问题内容

我有一个需要很长时间(5-30分钟)才能完成的PHP脚本。以防万一,脚本正在使用curl从另一台服务器上刮取数据。这就是它花费这么长时间的原因。它必须等待每个页面加载,然后再处理并移至下一页。

我希望能够启动脚本并放任其完成,这将在数据库表中设置一个标志。

我需要知道的是如何能够在脚本完成运行之前结束http请求。另外,php脚本是做到这一点的最佳方法吗?


问题答案:

当然可以使用PHP来完成,但是您不应将其作为后台任务-新进程必须与启动它的进程组分离。

从评论:

简短的版本shell_exec('echo /usr/bin/php -q longThing.php | at now');只是其中包含一些内容的原因。



 类似资料:
  • 问题内容: 我有一个PHP脚本,可能至少需要10秒钟才能运行。我想为用户显示进度。 在执行类中,我有一个随进度(在1-100中)更新的属性和一个方法(其目的应该很明显)。 问题是,如何更新前端的元素以供用户查看? 我认为AJAX是解决方案,但我只是无法解决。我无法到达同一对象实例。 问题答案: 如果您的任务是上载庞大的数据集或在服务器上处理它,则在将进度更新到服务器时,您应考虑采用某种作业架构,在

  • 有一个网站有一个按钮,点击该按钮应该有一个bash脚本,该脚本假设卸载一个目录。该按钮调用php脚本,带此函数: 我的问题是:当im在shell中运行命令时: 它很好用。 当我单击按钮时,会出现测试,但它不会运行脚本。如何查看日志?我可以将日志打印到shell吗?我不能,因为它被激活使用html上的按钮 我想这是权限问题?

  • 问题内容: 剖析PHP脚本的最简单方法是什么? 我喜欢在上面显示一些内容,这些内容可以显示所有函数调用的转储以及它们花费了多长时间,但我也可以在特定函数周围添加一些内容。 我尝试使用microtime函数进行实验: 但这有时给我负面的结果。另外,在我的代码中撒满代码也很麻烦。 问题答案: 所述PECL APD扩展的使用如下: 之后,使用解析生成的文件。 输出示例: 警告:APD的最新版本为2004

  • 完成上一节的初次运行后,你肯定会发现一点:一旦你按下 Ctrl+C,停下标准输入输出,logstash 进程也就随之停止了。作为一个肯定要长期运行的程序,应该怎么处理呢? 本章节问题对于一个运维来说应该属于基础知识,鉴于 ELK 用户很多其实不是运维,添加这段内容。 办法有很多种,下面介绍四种最常用的办法: 标准的 service 方式 采用 RPM、DEB 发行包安装的读者,推荐采用这种方式。发

  • 问题内容: 我有一个用Go语言编写的运行时间较长的服务器。Main会触发执行程序逻辑的多个goroutine。在那之后主要没有什么用。一旦主程序退出,程序将退出。我现在使用的使程序运行的方法只是对fmt.Scanln()的简单调用。我想知道其他人如何阻止main退出。以下是一个基本示例。在这里可以使用哪些想法或最佳做法? 我考虑过创建一个通道并通过接收该通道来延迟main的退出,但是我认为如果我的

  • 如果你有像(取自Dart教程)这样的期货链 取消这样一个链的正确“Dart”方法是什么?例如,这个长链可能已经在一段时间前启动,如果用户采取的行动使最终结果无用,您希望能够取消它。 可以让、、和的代码检查变量值并在值具有特定值的情况下抛出错误。 但是有没有一种通用的方法可以杀死一系列的期货? dart教程给出了一个如何链式期货的例子:https://www.dartlang.org/docs/tu