小编Pau*_*us2的帖子

docker 容器中的 Maven 非常慢

我正在尝试设置一个 Docker 容器来使用 maven 构建我的 java 项目

我已经从 maven:3.2-jdk-7 创建了我的 Docker 文件并构建了映像。

当我执行时:

docker run -it --rm --name my-maven-project -v "$PWD":/usr/src/app -v "$HOME"/.m2:/root/.m2 -w /usr/src/ app -v "$HOME"/.ssh:/root/.ssh test mvn clean package -Dmaven.test.skip=true

大约需要 20 分钟才能完成..但如果我在主机上运行相同的 mvn 命令,则需要 2 分钟

我尝试通过使用为容器提供更多内存

-m 4GB

但它没有改变任何东西,查看 docker stats 容器几乎没有使用超过 2G

我正在从 OSX 运行所有这些

我需要做些什么才能在合适的时间内完成 Maven 项目?我非常惊讶在主机上需要 2 分钟时需要那么多时间..

这是 docker stats 在 maven 构建 10 分钟后所说的

CPU: 201.13% 
Mem usage  / limit : 2.508GiB
 MEM %  : 62.69%
NET I/O: 3.01kB / …
Run Code Online (Sandbox Code Playgroud)

macos performance maven docker

9
推荐指数
1
解决办法
3002
查看次数

如何代理gRPC调用

我正在尝试分析应用程序发送的信息,所以我设置了Charles,但令我惊讶的是没有注销.

在反编译应用程序后,我发现它不使用简单的REST调用,而是使用名为gRPC的库.

有没有一个好的工具可以让我看到从应用程序发送的内容?

proxy man-in-the-middle grpc charles-proxy

6
推荐指数
1
解决办法
554
查看次数

JPA 两个事务更新相同的行

我在 SpringBoot 应用程序中使用 JPA 存储库 我有一个后台任务,定期将数据库中的某些元素设置为“就绪” 我还有一个用户可以调用的端点,并且可以修改同一个表的行之一。

有没有办法避免一个又一个取消对方的写入?以这个场景为例

Table: 
Key
id     name      is_ready
Run Code Online (Sandbox Code Playgroud)

0)初始数据有一个键(1 no_name false)

1)后台任务启动,即将通过设置修改表Key

is_ready to true
Key key = repo.findKeyByIsReady(false)
key.setIsReady(true)
repo.save(key) <--- does NOT yet execute this
Run Code Online (Sandbox Code Playgroud)

2)用户调用api端点将密钥名称更改为“new_name”并完成

3)现在后台服务执行repo.save(key),最终数据为

1    no_name   true 
Run Code Online (Sandbox Code Playgroud)

代替

1    new_name   true
Run Code Online (Sandbox Code Playgroud)

基本上后台任务已经覆盖了用户设置的键名

有没有办法避免这种情况?交易在这里有何帮助?

java mysql concurrency jpa transactions

3
推荐指数
1
解决办法
7556
查看次数