NutzCN Logo
问答 Sender异步请求的问题
发布于 1737天前 作者 文涛(wentao) 1452 次浏览 复制 上一个帖子 下一个帖子
标签:

请求代码:

            Sender.setup(Tasks.getTaskScheduler());
            Request req = Request.create(url, Request.METHOD.POST);
            req.setData(data);
            req.getHeader().set("Content-Type", contentType);
            Sender sender = Sender.create(req).setConnTimeout(connectTimeout).setTimeout(readTimeout);
            Future<Response> responseFuture = sender.send(obj -> log.infof("请求结束...%s", obj.getContent()));
            String result = responseFuture.get(5, TimeUnit.SECONDS).getContent();
            return result;

第一次没问题,第二次就开始报错
错误如下:

java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@4ce880ad rejected from java.util.concurrent.ScheduledThreadPoolExecutor@2623dcb7[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 2]
3 回复

Sender.setup(null); 之后问题不存在了

但是看了源码,如果setup为null,则会执行一次Executors.newScheduledThreadPool(64);
担心每次都会新建一个线程池,不知道会不会有问题

我把Sender.setup(null);放在MainLauncher了,应该不会有什么问题了

嗯, 文档有

添加回复
请先登陆
回到顶部