Python 在Heroku应用程序中同时运行Django和Node

Python 在Heroku应用程序中同时运行Django和Node,python,django,node.js,heroku,Python,Django,Node.js,Heroku,我想在heroku实例上同时运行django应用程序和节点应用程序 这是我的文件: web: python manage.py runserver 0.0.0.0:$PORT web: node bin/node_modules/app.js 但是,正如我所预料的,它看起来似乎只运行节点应用程序。是否可以将Heroku配置为在同一个procfile中运行这两个进程,或者是否需要执行其他操作?(如果还有别的什么,我不希望有一个完全独立的heroku实例) 你知道,因为Heroku的端口变量完全是

我想在heroku实例上同时运行django应用程序和节点应用程序

这是我的文件:

web: python manage.py runserver 0.0.0.0:$PORT
web: node bin/node_modules/app.js
但是,正如我所预料的,它看起来似乎只运行节点应用程序。是否可以将Heroku配置为在同一个procfile中运行这两个进程,或者是否需要执行其他操作?(如果还有别的什么,我不希望有一个完全独立的heroku实例)


你知道,因为Heroku的端口变量完全是内部变量,我可以做一些像pass node app.js port=$port这样的事情,我不介意,但我仍然希望将它们放在同一个位置。

还不能发表评论,但是你试过了吗:

web: python manage.py runserver 0.0.0.0:$PORT & node bin/node_modules/app.js

您只需要两个不同的进程名称:

webpy: python manage.py runserver 0.0.0.0:$PORT
webjs: node bin/node_modules/app.js

(假设每个流程正常运行)

如我在评论中所述,如果您想要两个web流程,您需要扩展您的应用程序流程管理器以包括两个动态:

heroku ps:scale web=2

我去派对有点晚了,但Heroku刚刚发布了一篇关于如何实现这一点的博客文章

阅读它,但本质上,您将使用它来设置子procfile,如下所示:

程序文件:

web: bin/runsvdir-dyno
Procfile.web:

django: gunicorn path.to.wsgi:application --bind 127.0.0.1:$DJANGO_PORT
node: node server.js

这不起作用,因为您正在重写“web”procfile类型的值。如果你想分别运行它们(在不同的dyno上),你可以给它们命名(例如:
python
node
),然后运行
heroku-scale-python=1-node=1
。这让我接近了,但实际上我只是添加到web:references-ad-heroku-ps:scale-web=2来添加另一个web dyno。