easywechat发送模板消息频繁超时小记
起因
最近项目中因为要发送各种类型的微信模板消息,于是使用到了安正超大大的easywechat,的确是「微信开发,从未如此简单」。
于是很快开发完成。测试环境下,发送模板消息很快。相同的代码的代码上线后,发送模板消息概率性提示CURL超时:
ConnectException in CurlFactory.php line 186: cURL error 28: Operation timed out after 5001 milliseconds with 0 out of 0 bytes received (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
我怀疑过是不是业务代码陷入了死循环导致超时?是不是composer升级完easywechat的有bug导致超时?
如果你发送微信模板消息频繁超时?如果你是用的是阿里云服务器?请接着往下看,大概率会解决你的问题。
解决办法
通过Google查到的确有人遇到过类似的问题,大大斩钉截铁的回答「检查你的服务器 DNS」。
但是毕竟阿里云,不太相信是dns解析的超时啊。。。
接着V2ex「大家也都试试,是不是阿里 DNS 故意搞慢腾讯域名的解析」,开始怀疑是不是阿里云的dns解析的问题呢。
直到看到「域名解析慢导致微信授权慢的问题」,最终更加坚定一定是阿里云服务器的dns解析出问题了。
哪里有问题,解决哪里~附上修改服务器dns的方法:
cat /etc/resolv.conf
output:
options timeout:2 attempts:3 rotate single-request-reopen;
generated by /usr/sbin/dhclient-script
nameserver 182.254.116.116 //腾讯dns
#nameserver 100.100.2.138 //阿里云默认dns
#nameserver 100.100.2.136 //阿里云默认dns
结论
不做评论,解决问题就好