如何从存储库规则中调用持久性工作者?

How to call a persistent worker from repository rule?

我需要编写一个 Bazel 存储库规则,该规则根据现有库中存在的某些逻辑(也执行其他操作)下载 mysql 二进制文件。

我正在考虑启动一个持久的 jvm worker 的选项,它将托管这个库并要求它只在某处下载存档并避免代码重复。

我的问题是:
1. 我需要做什么才能起床和运行 坚持不懈的工作者?没找到教程。
2. 我可以告诉工作人员将存档下载到的正确(bazel 明智)位置是什么?

请随时告诉我,您认为我将此委托给工人是在犯一个可怕的错误:)

您无法通过存储库规则轻松地与持久工作人员交谈,但我认为这不是您想要的。

您可能希望 运行 您的命令在 repository_rule 中下载工件,然后稍后在构建规则中启动持久性工作者。存储库规则不应经常执行,因此节省存储库规则的启动时间可能不会有帮助。