在Heroku dyno上运行多个进程是否可行?

okw*_*okw 10 python subprocess heroku worker

我知道Heroku平台的内存限制,我知道将应用程序分成web和worker dynos的可扩展性要高得多.但是,我仍然希望在Web进程旁边运行异步任务以进行测试.Dynos价格昂贵,我想在Heroku提供的免费实例上进行原型设计.

在与Web进程相同的dyno中将新作业作为进程或子进程生成是否有任何问题?

And*_*ter 4

在较新的 Cedar 堆栈上,生成多个进程没有问题。每个 dyno 都是一个虚拟机,除了内存和 CPU 使用率(我认为大约 512 MB 内存和 1 个 CPU 核心)之外没有任何特殊限制。遵循某些堆栈(例如 Python)的较新安装说明将导致具有开箱即用的多个(Web 服务器)进程的配置。

Web dynos 上安装的软件可能会有所不同,具体取决于您使用的构建包;如果您的子流程需要特殊软件,那么您可能必须将其与您的应用程序捆绑在一起,或者(更好)推出您自己的构建包。

在这一点上,我通常会提醒您,强烈鼓励使用适当的任务队列系统在工作测功机而不是网络测功机上运行异步任务,但听起来您已经知道了。请记住,只有一个网络测功机的帐户(通常这意味着“免费”帐户)将在一个小时左右没有收到任何网络请求后,该测功机将停止运行,并且此时测功机上运行的任何后台进程时间必然会被杀死。具有多个网络测功机的帐户不受此限制。