通过Shake使用持久服务

时间:2018-10-15 11:28:32

标签: shake-build-system

我们有一个Shake构建系统,其中一些规则与Postgres数据库对话,作为持久的后台服务。我们如何使用Shake来确保服务在需要时启动,并在Shake完成后关闭?

特别是,如果没有规则使用它,我们就不想启动该服务;如果使用了它,我们就不希望它在运行过程中多次启动/停止。

1 个答案:

答案 0 :(得分:1)

在Shake中实现此模式的一种方法是:

<div class="container">        
    <div class="row">
        <div class="col-xs-12">ABC</div>            
    </div>
</div>

我们创建了一个名为rules = do startService <- newCache $ \() -> do ... start the service here ... runAfter $ ... shut down the service here ... "*.txt" %> \out -> do startService () ... use the service here ... 的缓存项目。仅在需要时,使用startService最多可以执行一次操作。但是,我们可以启动服务(甚至有可能先构建服务)。我们使用newCache关闭该服务,该服务将在Shake完成其执行后运行。

为确保该服务在任何规则下均可用,我们首先致电runAfter

作为一项相关功能,如果您有一条规则,即您不想提供持久服务,而只是为了批量操作,请参见startService ()函数。