根据Unicorn的文档:
Unicorn中的超时机制是一个极端的解决方案,应该尽可能避免......因为它会杀死并重新生成一个工作进程,所以它很昂贵。
它有多贵,我该如何衡量成本呢?
Backstory:我在Heroku上有一个使用默认Unicorn配置的应用程序(预加载;超时15秒。)我很好奇Unicorn在超时后启动新工作需要多长时间,因为如果它在订单上提高高于 Heroku的30秒截止时间可能是有意义的。通过这种方式,工作人员有一点宽限时间来完成像特别大的图像上传(即使响应从未传递给客户端),并且在没有重生的开销的情况下自我释放。
另一方面,如果重生的时间是毫秒级的话,那么简单地抛出超时并获得一个新工人就可能总是更便宜。