接上一篇,在打包的时候发现始终存在报错,然后检查jar包里面META-INF里面的services里面发现有一个类被覆盖了。最后放弃了assembly改用shaded,然后增加了配置,在services里面就不会少信息了。
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>reference.conf</resource> </transformer>
接着是使用Mybatis,个人项目
https://github.com/zhougit86/maven-hadoop/tree/master/src/main
参考的一些博客
https://www.cnblogs.com/dongying/p/4031613.html
多个线程之间是可以使用不同Session的,框架做好了多线程的一些处理。中间的一些问题是自身代码抓不到DAO层的一些Exception(需要研究)。而且关于jdbc的一些properties会打到jar包里面,无法运行期间去改变。
遍历hdfs的程序跑起来之后就出现一直在产生任务,但是处理不完,原来LinkedBlockQueue满了之后再put是会报错的,而且我的模型是遍历线程既是生产者又是消费者。这个就很有问题了。于是就设计成了Thread在本地维护一个链表,定期取出任务本地缓存。
接着研究了java的Condition,感觉Condition可以承担起Channel的职责。也可以通过返回值来判断是超时还是notify。应用在了个人的DSL项目当中(用java实现了一把golang的transdsl https://github.com/agiledragon/trans-dsl)
https://github.com/zhougit86/JDSL