我需要在用户操作时执行目录副本,但目录非常大,所以我希望能够执行这样的操作,而无需用户知道副本完成所需的时间.
任何建议将不胜感激.
我希望从PHP发送HTTP GET请求.例:
http://tracker.example.com?product_number=5230&price=123.52
Run Code Online (Sandbox Code Playgroud)
我们的想法是进行服务器端网络分析:服务器不是将跟踪信息从JavaScript发送到服务器,而是将跟踪信息直接发送到另一台服务器.
要求:
请求应该花费尽可能少的时间,以便不会明显延迟PHP页面的处理.
tracker.example.com不需要检查来自的响应.作为示例,一些可能的响应来自
tracker.example.com:
200:没关系,但不需要检查.
404:运气不好,但是 - 再次 - 不需要检查.
301:虽然重定向是合适的,但它会延迟PHP页面的处理,所以不要这样做.
简而言之:可以丢弃所有回复.
解决方案的想法:
在一个现在删除的答案中,有人建议在shell进程中从PHP 调用命令行 curl.这似乎是一个好主意,只是我不知道在重负载下分配大量shell进程是否明智.
我找到了php-ga,一个用于从PHP进行服务器端Google Analytics的软件包.在项目的页面上,提到:"可以配置为使用非阻塞请求." 到目前为止,我还没有时间研究php-ga内部使用的方法,但这种方法可能就是这样!
简而言之:从PHP进行通用服务器端跟踪/分析的最佳解决方案是什么.
我想运行一个非常慢/复杂的程序,至少需要10分钟才能完成.我想通过shell_exec或类似的东西来调用它,但我不希望php脚本等待这个程序的完成.
是我可以做的事情?如果是这样我怎么能这样做?
我ffmpeg在PHP文件中进行了视频转换,它可以正常工作.问题是这需要一分钟才能完成.我认为它可能很容易但我只能在后台工作时只使用一个命令(例如没有mp4box的单通道转换)
exec("nohup " . $ffmpegPath . " -i " . $srcFile . " -f mp4 -vcodec libx264 -crf 27 -s " . $srcWidth . "x" . $srcHeight . " -an -r 20 " . $destFile . ".mp4 > /dev/null 2>&1 &");
Run Code Online (Sandbox Code Playgroud)
问题是我需要使用三个不同的命令来进行正确的转换.到目前为止,我的命令在PHP文件中看起来像这样,但它有效,但是有很大的延迟:
exec($ffmpegPath . " -y -i " . $srcFile . " -f mp4 -pass 1 -passlogfile " . $video_pass_log . " -vcodec libx264 -vpre ipod640 -b:v 2M -bt 4M -an " . $destFile . ".mp4");
exec($ffmpegPath . …Run Code Online (Sandbox Code Playgroud)