【发布时间】:2019-10-22 05:11:43
【问题描述】:
在部署新版本时,我希望我的服务器在实际发布之前执行一些任务并监听 http 请求。
假设这些任务大约需要一分钟,并且正在设置一些变量:在任务完成之前,我希望将用户重定向到旧版本。
基本上在服务器准备好之前做一些nodejs工作。
我尝试了一种天真的方法:
doSomeTasks().then(() => {
app.listen(PORT);
})
但是一旦新版本发布,任务期间的所有https请求都不起作用,而是被重定向到旧版本。
我已阅读https://devcenter.heroku.com/articles/release-phase,但这看起来我只能运行一个对我不利的外部脚本,因为我的任务是设置缓存变量。
我知道这可以通过 App Engine 上的 /check_readiness 实现,但我想知道 Heroku。
【问题讨论】:
-
为什么不使用preboot?您可以完成所有任务,然后进行端口绑定,这将确保在您的新服务完成任务后有新请求出现