cn.jpush.api 里的 sendPush 方法 调用后无返回 也不报错 是什么原因?

error
标签: #<Tag:0x00007fb83f52a6a8>

(暗影摄魂) #3

是java语言,就卡那了,没有输入任何log


(暗影摄魂) #4

我们用的是3.2.15版本的


(KenChoi) #5

升级一下版本试试,现在最新的是 3.3.3


(暗影摄魂) #6
at cn.jiguang.common.connection.NativeHttpClient._doRequest(NativeHttpClient.java:234)
at cn.jiguang.common.connection.NativeHttpClient.doRequest(NativeHttpClient.java:99)
at cn.jiguang.common.connection.NativeHttpClient.sendPost(NativeHttpClient.java:86)
at cn.jpush.api.push.PushClient.sendPush(PushClient.java:163)
at cn.jpush.api.JPushClient.sendPush(JPushClient.java:193)

升级了3.3.3 报错 这个


#7

给完整的报错


(暗影摄魂) #8

哦,这个错解决了。
3.3.3好像不会卡了,我再试试。


(暗影摄魂) #9

不会卡住了。
总结:3.2.15的包以前用没问题,现在用会卡在那里


(暗影摄魂) #10

新版本的,如果没有用户,就会抛异常,这个异常能关掉吗?开发环境怪难受的。


#11

这个不能关掉,你可以弄一个 demo 配合测试(官网控制台可以扫码下载),顺便可以看看推送效果


(Anhui) #12

3.2.15版本,wait时候,极光没有应答的话,线程存在卡住问题


(KenChoi) #13

升级一下吧,而且 Netty 也不推荐使用了,因为用了同步锁,它其实是个异步请求的工具,所以线程多了会卡。推荐使用 ApacheHttpClient


(Anhui) #14

你好,兄。现在改为使用默认的NativeHttpClient是否可以,还有就是没有找到设置超时时间的方法?谢谢


(暗影摄魂) #15

看了下单推如果没有注册到,也会抛异常。。


#16

没有用户是肯定会报异常的啦


(暗影摄魂) #17

cn.jpush.api.JPushClient sendPush 支持多线程吗?还是要线程锁?


(Anhui) #18

这种最好自己判断下有没有注册到


(暗影摄魂) #19

推送tag的,我觉得没人注册到这个tag也是可能的。
单推的是因为可能用户注销掉了。
感觉这样抛异常出来,又没有办法只禁止这一种异常,导致这个代码的异常只能去写死的忽略了


(Anhui) #20

JPushClient jpushClient = new JPushClient(Constant.masterSecret, Constant.appKey, null, ClientConfig.getInstance());
String authCode = ServiceHelper.getBasicAuthorization(Constant.appKey, Constant.masterSecret);
ApacheHttpClient httpClient = new ApacheHttpClient(authCode, null, ClientConfig.getInstance());
// Call setHttpClient to set httpClient,
// If you don’t invoke this method, default httpClient will use NativeHttpClient.
jpushClient.getPushClient().setHttpClient(httpClient);

帮确认下是否这样OK


(KenChoi) #21

这就是 demo 的写法,没问题。


(KenChoi) #22

ApacheHttpClient 底下有线程池,支持多线程的。