我正在使用Bazel在一台远程机器上构建一个大型项目。清洁的构建时间约为30分钟。增量构建(在1-2个文件中更改代码)通常需要10-20秒。
我遇到的问题是,当我退出机器并在1-2天后再次登录时,构建命令需要10分钟左右,尽管我没有修改任何源代码。
如果我调用bazel shutdown
,然后再次调用bazel build
,“不构建”op大约需要5-10秒(即比其他“不构建”op要好得多)。
如果我立即退出并再次登录,我可以看到后台仍有一个bazel进程正在运行,当我调用bazel shutdown
时,这个进程就消失了。我猜想,当我不正确关闭bazel时,它就会被杀死,以至于损坏或删除缓存的数据。然后,长时间的“非构建”op会花费很长时间来重建以前存储在Bazel缓存中的数据。
当我断开连接时,有没有一种自动关闭bazel服务器的方法?当(i)从命令行调用exit
进行注销时,(ii)通过某种超时或网络连接中断自动断开连接时,这两种方法最好都能工作。
发布于 2022-11-07 12:05:40
设置您的开发环境,这样您的会话就不会自动退出/终止,例如,使用像screen
或tmux
这样的工具。当您想结束会话时,请在bazel shutdown
之前调用exit
。不是完全自动化的,但重点是您应该控制您的会话何时结束。
https://stackoverflow.com/questions/74303480
复制相似问题