- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
主管( http://supervisord.org )可以在 Heroku 上运行和管理/监控几个长时间运行的 python 脚本(长轮询 SOAP 监听器),还是我必须为每个脚本使用 dyno。如果每个脚本都可以使用dyno,它们会在失败或重新启动后自动重新启动吗? (这基本上就是我所需要的,这些脚本的冗余)
最佳答案
从技术上讲,让 Heroku dyno 运行某种父监督进程是可能的,该进程会生成并自动重新启动子进程。我自己用 forever-monitor 完成了此操作。我的 Procfile 有一条 worker 线 process type运行一个父进程,该父进程生成并管理子进程。
所以,是的,这在技术上是可以做到的。
但是,您需要仔细考虑这是否适合您的用例。这种方法的一个优点是,它可以使您降低 dyno 成本(因为您将在单个 dyno 上运行子进程,而不是在单独的 dyno 上)。但这确实是“围绕”Heroku 最佳实践(及其背后的 12 Factor App 方法)。
如果可能的话,如果您可以允许 Heroku 将长时间运行的 python 脚本安排为单独的工作进程类型,每个工作进程都有自己的 dyno,那可能会更好。如果您有能力这样做(在成本方面),那么 Heroku 将在失败或重新启动后自动重新启动每个脚本(请参阅 Restarting )。如果这就是您所需要的,那么您根本不需要运行自己的“Supervisor” - 让 Heroku 为您处理(它做得很好)。
关于python - 如何在 Heroku 上使用supervisord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46820040/
我是一名优秀的程序员,十分优秀!