在应用程序关闭时,我在哪里将代码放入我想要执行的Sinatra中?

pqu*_*imo 9 ruby sinatra

我正在使用Sinatra作为我的webapp.我有一些清理代码,我想在我的应用程序关闭时执行.在Sinatra有这个钩子还是我必须使用一个单独的机制?

Mic*_*ohl 9

看看Kernel#at_exit,如果你在主应用程序文件中的某个地方定义了一个块,我不明白为什么它不适用于Sinatra应用程序.

更新:根据matt的评论,你必须at_exit在要求Sinatra之前定义你的处理程序.

  • 我刚刚做了一个快速测试 - 如果你添加`at_exit`处理程序_before_你调用`require'sinatatra'`然后你的处理程序在Sinatra关闭后被调用,因为它位于`at_exit`堆栈的底部.所以在某些情况下这可能是一种有用的技术. (3认同)