根据独角兽文档:
Unicorn 中的超时机制是一种极端的解决方案,应尽可能避免……它会杀死并重新生成工作进程,因此代价高昂。
它有多贵,我将如何衡量该成本?
背景故事:我在 Heroku 上有一个使用默认 Unicorn 配置的应用程序(预加载;超时 15 秒。)我很好奇 Unicorn 在超时后启动一个新工作人员需要多长时间,因为如果它是几秒钟的数量级将超时时间提高到Heroku 的 30 秒截止时间以上可能是有意义的。这样,工作人员有一点宽限时间来完成诸如特别大的图像上传之类的事情(即使响应从未传递给客户端)并释放自己而无需重新生成的开销。
另一方面,如果重生发生在毫秒级,那么简单地抛出一个超时并获得一个新的工人可能总是更便宜。