使用 PHP 生成微信海报速度过慢

2018-05-14 16:04:30 +08:00
 c466934322
我的海报生成逻辑是:
第一步从数据库里面获取推广用户的 id,
第二步用 id 去微信生成二维码,并保存二维码
第三步利用 thinkphp 的图片合成功能把背景图和二维码合成海报,
第四步上传海报到临时素材接口
第五步调用多客服接口发送海报+文案

服务器配置是:
php5.6+mysql5.7
单体架构
内存占用为 37%,
cpu 在获取海报的时候为 35%

但是出现的问题是:
用户在公众号输入关键字获取海报的时候,反应速度超级慢,有时候差不多过了 4s 甚至 5s 才回复出来文案+海报

怎么让反应速度快些
4755 次点击
所在节点    PHP
26 条回复
flyingghost
2018-05-15 11:20:18 +08:00
1234 里都没看出有什么动态内容。
那就为每个用户提前生成啊。
moonsola
2018-05-15 11:28:07 +08:00
进来之前,以为是 php 合成图片慢;
进来之后,发现楼主还没定位到具体是哪里慢
vlrog
2018-05-15 13:49:46 +08:00
应该不是 PHP 的问题,很可能是获取微信二维码和调用客服接口比较费时
simapple
2018-05-15 14:38:00 +08:00
@tanszhe 看清楚,他要做的这些都可以异步实现。
@c466934322 用 swoole 将这个任务拆分成异步的,然后返回 success 给微信,生成好图片上传后,用客服接口推给微信。使用 cgi 进程同步执行 只要用户集中操作就会阻塞,微信在服务器返回超时,还会执行重试,让进程更加忙碌。所以你把这个处理操作 都弄成异步的,就 ok 了
han8gui
2018-06-08 17:29:54 +08:00
之前做过类似的功能,1s 之类就搞定了。
没看出你的瓶颈在哪?
Rootrl
2018-08-01 01:01:32 +08:00
最后放在客户端生成,canvas

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/454741

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX