V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  godoway  ›  全部回复第 1 页 / 共 5 页
回复总数  93
1  2  3  4  5  
306 天前
回复了 ScottHU 创建的主题 程序员 是时候该换掉你的 axios 了
很好,但是我的渣渣 ng 有自带的 httpclient
2021-01-06 16:40:28 +08:00
回复了 kaka6 创建的主题 .NET 还有人用.Net 吗,亲测.Net5 性能飞升
.net 没有源码绑定,开发体验上有点不友好,想要知道某接口有哪些实现还要去翻文档才能看到类的层级。
除开这个外,其他体验还行。
@tctc4869 虽然不太了解,不过核心思路一样的。就是非阻塞且耗时短的都可以交给 eventloop,阻塞或耗时长的都要交给 worker 。
例如你有一个计算很久的代码,如果交给 event loop 那么这个 event loop 就没法去处理其他了,所以要用 worker 。
其实 tcp 部分把他当成 netty 就是了
@tctc4869 我想说 jdbc-client 的实现就是在 worker 线程池跑查询,获取结果后在你调用的线程(eventloop)回调。
而 executeBlocking(Handler<Promise<T>> blockingCodeHandler, Handler<AsyncResult<T>> resultHandler)
这个方法干的就是这个,blockinghandler 在 worker 线程上执行,result 在你当前调用线程执行。
worker verticle 的话则是启用一个绑定了 worker 线程的 verticle,也就是里面的所有操作占用的都是 worker 线程而非 eventloop 。
所以使用传统 jdbc 的场合有两条路给你封装,一个是利用 executeBlocking,一个是封装成 worker verticle 。
PS. postgresql 建议可以考虑使用 vertx-pg-client,这个是异步的,不过还不是很完善就是了。
@tctc4869 忘了提还有一个 vertx.executeBlock
@tctc4869 官方有一个 JDBC client,
另外自己接 mybatis 之类的需要 worker verticle
然后通过 eventbus 通讯(这部分可以用 codegen 生成 service proxy 代码)
@tctc4869 你是指 route 的 block handler 么
一般来说不会用到这个,这个是到 worker 线程池里面拿一条线程来处理请求了。
正常来说请求的处理应该也是尽量使用 event loop 来处理。
在使用传统 jdbc 场合按官方的设计是使用 worker 线程处理请求数据库然后再传递到 event loop 线程。
其实就是熟悉的 netty 里的 event loop 和业务线程池组合的玩法。
2020-03-23 17:25:42 +08:00
回复了 JiZhiDeboy 创建的主题 Vue.js vue history 模式 tomcat 问题
把 404 指向 index 就行了,大部分 spa 都是这样
2020-03-04 18:16:20 +08:00
回复了 Freeego 创建的主题 程序员 Java 有没有什么好办法做 Map 参数校验?
问一下 map 转对象( jackson 序列化之类)再校验,这思路是否可行
2020-02-20 18:18:34 +08:00
回复了 rqxiao 创建的主题 程序员 Java 中 list 一个集合的展示
试着写了一下
final Set<String> columns = list.stream().map(Record::getCode).collect(Collectors.toSet());
list.stream()
.collect(Collectors.groupingBy(Record::getGroup))
.entrySet().stream()
.map(entry -> {
List<Record> tmp = entry.getValue();
Collector<Record, Map<String, Integer>, Map<String, Integer>> collector = Collector.of(
() -> columns.stream().collect(Collectors.toMap(col -> col, count -> 0)),
(map, record) -> {
String code = record.getCode();
map.put(code, map.getOrDefault(code, 0) + 1);
},
(m, sm) -> m
);
Map<String, Integer> row = tmp.stream().collect(collector);
return new HashMap.SimpleEntry<>(entry.getKey(), row);
})
.forEach(System.out::println);
输出:
组 2={code3=1, code2=0, code1=1}
组 1={code3=0, code2=1, code1=1}
2020-02-20 14:09:31 +08:00
回复了 rqxiao 创建的主题 程序员 Java 中 list 一个集合的展示
用 Collector.of()构造一个包含所有 Column 的 HashMap 作初始值的 Collector 吧
2020-02-15 02:15:10 +08:00
回复了 weishijun14 创建的主题 JavaScript 请教一个 rxjs 问题。。。。。。
应该是背压?
在 rxjava 里面叫 Flowable,rxjs 里面好像没见有
2020-02-15 02:07:12 +08:00
回复了 xcstream 创建的主题 JavaScript 请教一个 js 问题,实现类似 go channel 的功能
听说过 rxjs 吗
var subject = new Subject()
subject.subscribe(msg => console.log(msg))

subject.next(1)
subject.next(2)
subject.next(3)
2020-02-08 16:24:20 +08:00
回复了 tikazyq 创建的主题 程序员 对于爬虫来说,一种绕开验证码登录的好办法
@locoz
@qiushaox
并不是在取笑这个手段,而是答非所问
2020-01-10 15:49:05 +08:00
回复了 heavyrainn 创建的主题 程序员 请问,没有 Java 基础,可以直接学 kotlin 么?
2 楼加一
另外取代 java 是不可能的,kotlin 号称 更好的 java
官方也发出了这样的视频: What's new in Java 19: The end of Kotlin?
2020-01-08 18:43:58 +08:00
回复了 timedivision 创建的主题 程序员 找一个 angular 的性能优化例子
2019-12-31 18:16:00 +08:00
回复了 sandman511 创建的主题 程序员 Java :如何处理空指针?
@nekoneko
@redford42
这其实是语法上提醒你检测空安全,例如有个接口入参 optional,你就知道这里可能为空,入参一个对象有可能你就忘了检测非空
2019-12-14 09:55:01 +08:00
回复了 jeffh 创建的主题 程序员 最近学到了 windows 下的包管理工具 scoop,感觉非常便利
用过一次,它把我环境变量里面的引用变量都展开了,于是就删了。
后者感觉像是设计要给 router,其实 router-handler 模式挺适合 netty 的。
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5413 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 07:11 · PVG 15:11 · LAX 00:11 · JFK 03:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.