1

我正在开发一款游戏,并选择 Happstack 作为持久性部分。我觉得它很容易使用,我做了一个简单的例子让自己理解它:

getAllObjects :: MonadIO m => m [Thing]
getAllObjects = do
            elems <- query GetObjects           
            return elems
addAnObject :: (MonadIO m) => Thing -> m ()
addAnObject thing = do  update $ AddObject thing
test command = do
                control <- startSystemState macidProxy
                result  <- command
                shutdownSystem control
                return result
checkpoint = do
        control <- startSystemState macidProxy
        createCheckpoint control
        shutdownSystem control

每次我“测试”它时,它都会创建一个 event.file。然后我“检查点”并创建一个新的检查点文件,这对我来说没问题,问题是旧的事件文件不断增长!我手动删除每个文件(最后一个检查点和当前文件除外)。happstack 中是否缺少一些代码来执行“删除旧事物”?

4

1 回答 1

2

没有用于清除旧事件文件的内置机制。Lemmih 曾谈到在某个时间点将此类设施添加到酸性状态。

编辑:酸状态的 darcs 版本现在有一个函数“createArchive”来归档不再需要恢复当前状态的旧日志文件。

于 2011-09-29T03:14:42.727 回答