Shake build system 将持久服务与Shake一起使用
我们有一个震动构建系统,其中一些规则与Postgres数据库通信,作为一个持久的后台服务。我们如何使用Shake来确保服务在需要时启动,并在Shake完成后关闭Shake build system 将持久服务与Shake一起使用,shake-build-system,Shake Build System,我们有一个震动构建系统,其中一些规则与Postgres数据库通信,作为一个持久的后台服务。我们如何使用Shake来确保服务在需要时启动,并在Shake完成后关闭 特别是,如果没有规则使用该服务,我们不希望启动该服务,如果使用该服务,我们也不希望在运行期间多次启动/停止该服务。在Shake中实现此模式的一种方法是: rules = do startService <- newCache $ \() -> do ... start the service here
特别是,如果没有规则使用该服务,我们不希望启动该服务,如果使用该服务,我们也不希望在运行期间多次启动/停止该服务。在Shake中实现此模式的一种方法是:
rules = do
startService <- newCache $ \() -> do
... start the service here ...
runAfter $ ... shut down the service here ...
"*.txt" %> \out -> do
startService ()
... use the service here ...
rules=do
startService do
... 在这里启动服务。。。
美元后运行。。。关闭这里的服务。。。
“*.txt”%>\out->do
startService()
... 使用这里的服务。。。
我们创建一个名为startService
的缓存项。使用newCache
仅在需要时,操作最多执行一次。我们可以启动服务,但这是有意义的(甚至可能先构建服务)。我们使用runAfter
关闭服务,该服务将在Shake完成执行后运行
为了确保服务在任何规则中都可用,我们首先调用startService()
作为一个相关功能,如果您有一个规则,其中您不想要持久性服务,而只是批量操作,请参阅batch
函数