• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

javascript – php异步视频处理问题?求大神指导

php 搞代码 4年前 (2022-01-23) 17次浏览 已收录 0个评论
文章目录[隐藏]

需求描述:
使用百度云平台的视频解决方案,它的解决方案是手机端先上传至自有服务器,再由自有服务器上传至百度的服务器,现在希望php后台在完成用户上传至自有服务器时,返回用户上传成功,然后执行上传至百度服务器的操作。 现在遇到的问题是:PHP后端是等待所有的执行完成后,才会对客户端进行返回。搞得每一次都会等很久。

不知道各位大神可以指导一下小子吗?做前端的,php初级,遇到很多的问题,谢谢各位大神们。

回复内容:

本文来源gao@daima#com搞(%代@#码@网&搞gaodaima代码

需求描述:
使用百度云平台的视频解决方案,它的解决方案是手机端先上传至自有服务器,再由自有服务器上传至百度的服务器,现在希望php后台在完成用户上传至自有服务器时,返回用户上传成功,然后执行上传至百度服务器的操作。 现在遇到的问题是:PHP后端是等待所有的执行完成后,才会对客户端进行返回。搞得每一次都会等很久。

不知道各位大神可以指导一下小子吗?做前端的,php初级,遇到很多的问题,谢谢各位大神们。

如果你的PHP服务用的是PHP-FPM,可以专门开一个用于处理视频上传操作的进程池pool,脚本用fastcgi_finish_request快速响应用户完成请求后,执行耗时的上传处理.

<code><?phpecho '手机端视频先上传至自有服务器';sleep(10);echo '上传成功';fastcgi_finish_request(); //响应用户,结束请求echo '程序继续操作,从自有服务器上传至百度服务器';sleep(10);</code>

在文件上传过程中PHP-FPM并不会被阻塞,因为Nginx接收完上传的内容后才一次性交给PHP-FPM.
“从自有服务器上传至百度服务器”这个操作则会阻塞占用一个PHP-FPM工作进程.
这时可以考虑建立的upload进程池来处理这个操作,避免阻塞系统的其他脚本运行.

<code>nginx.conf: upload.php脚本的处理都交给监听9001的PHP-FPM进程池处理location = /upload.php {    include fastcgi_params;    fastcgi_pass 127.0.0.1:9001;    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}php-fpm: 正常的脚本由静态www池处理,网络阻塞脚本由动态upload池处理[www]listen = 127.0.0.1:9000pm = staticpm.max_children = 4[upload]listen = 127.0.0.1:9001pm = dynamicpm.max_children = 8pm.start_servers = 4pm.min_spare_servers = 4pm.max_spare_servers = 4</code>

可以使用队列,用户传完之后直接压一个任务到队列里然后返回上传完成,系统再执行个定时任务去跑这个队列。队列应用形式有好几种,你搜搜看


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:javascript – php异步视频处理问题?求大神指导

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址