利用微信的 jssdk 调用手机相机拍照上传,图片是保存在微信服务器上的且只能保存三天,所以需要通过微信提供的接口把微信服务器上的图片下载到自己的服务器.要用到 curl,问题是当使用的人很少的时候没问题,但是人一多就出现卡死的情况.报名的时候每个人都要上传 4 张图片,最后提交的时候同事把图片 curl 到本地.cuel 方面已经使用了 curl_multi 改进过的 rolling_curl,但是效果不是很好,有没有什么好的方向建议?
利用微信的 jssdk 调用手机相机拍照上传,图片是保存在微信服务器上的且只能保存三天,所以需要通过微信提供的接口把微信服务器上的图片下载到自己的服务器.要用到 curl,问题是当使用的人很少的时候没问题,但是人一多就出现卡死的情况.报名的时候每个人都要上传 4 张图片,最后提交的时候同事把图片 curl 到本地.cuel 方面已经使用了 curl_multi 改进过的 rolling_curl,但是效果不是很好,有没有什么好的方向建议?
1
jswh Jun 15, 2017
一开始的时候可以使用微信的地址。图片抓取任务不用实时做,放到队列里做。抓取之后把微信地址替换为本地地址。
|
2
loadinger Jun 15, 2017
有个东西叫 mq.
|
3
juneszh Jun 15, 2017
最省成本的操作就是把并发改成队列。另外业务逻辑不能优化?为什么一上传就要去下载?微信的链接都可以用 3 天
|
4
BOYPT Jun 15, 2017
上 CDN 吧。七牛可以远程下载微信的图,我们项目用七牛存用户的头像。
|
5
2ME Jun 15, 2017
队列 或者写个定时任务每次执行扫一遍微信的图片地址抓取下来执行 UPDATE
|
6
king2014 OP @juneszh 一上传就下载是因为有一个在 pc 端的后台,有人实时审核的.微信的图片链接是 wx:XXXX 只能在微信上显示,而且苹果和安卓图片链接形式还不是一样的.
|
10
juneszh Jun 15, 2017
@king2014 #6 不是很理解,如果只是后台审核用,直接用你 curl 下载的图片地址作为显示不就可以了?<image src="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={$token}&media_id={$media}" />
|
11
jarlyyn Jun 15, 2017
这么复杂为什么不直接 PO 到服务器上……
|
12
juneszh Jun 15, 2017
你都能 curl 下载到图了,为什么会有 PC 端不能显示的道理?
|