Use gRPC with SpringBoot

gRPC相比于REST HTTP请求在接口规范、传输性能和流式通信方面更好,因此广泛应用分布式系统和微服务的通信过程中. 本文主要是针对目前gRPC-Java和SpringBoot的入门级教程不够统一而写,也是使用过程的记录.感谢grpc-spring-boot-starter提供了开箱即用的gRPC服务端和客户端的接口实现,因此我们可以专注业务实现.

Read more

unexpected error in pytorch backward

在写模型训练的时候遇到奇怪的报错:

1
RuntimeError: Trying to backward through the graph a second time, but the saved intermediate results have already been freed. Specify retain_graph=True when calling backward the first time.
Read more

Gorm加悲观锁的最新用法

因为google了“gorm for update”或者是“gorm 开启排他锁”出来的文章清一色的使用着如下用法来开启表的行/表锁

1
tx.Set("gorm:query_option", "FOR UPDATE").First(&employee, id)

但是经过测试,我加了没有作用,搜索gorm官方文档,结果用法已经变成如下

1
2
3
4
5
6
7
8
db.Clauses(clause.Locking{Strength: "UPDATE"}).Find(&users)
// SELECT * FROM `users` FOR UPDATE

db.Clauses(clause.Locking{
Strength: "SHARE",
Table: clause.Table{Name: clause.CurrentTable},
}).Find(&users)
// SELECT * FROM `users` FOR SHARE OF `users`

果然有问题先找官方文档。😂

slice使用append的小坑

今天在刷一道算法题的时候遇到了一个关于slice在使用append的小细节问题。这个算法题可以参考路径总和II
题意很简单,就是从一个二叉树中所有由根到叶子节点的路径中找到所有的满足路径和等于target的路径。

Read more