Heroku Python部署只使用一个dyno的两个.py文件

时间:2017-05-31 11:22:44

标签: python heroku

使用仅两个.py文件部署python应用程序但将其保存在一个dyno中的最简单方法是什么?我的文件是friend.pyfoe.py,我的Procfile如下所示:

worker: python friend.py
worker: python foe.py

但是当部署到Heroku时,我唯一的dyno就是foe.py.我已经阅读了其他类似的问题,但它们似乎很复杂,我还不了解python Web应用程序的内部工作原理。

1 个答案:

答案 0 :(得分:1)

如果它们是并行工作的不同进程,则最直接的路径是两个dynos,在{{1}中使用不同的名称(实际上,friendfoe可以正常工作) }。现在,您使用名称Procfile两次,因此worker显示,因为它是最后定义的。要记住两件事 -

  • foe.py中的名字可以是任意的;据我所知,唯一的“特殊”名称是Procfile,它告诉Heroku期望该进程绑定到端口并接受来自路由网格的HTTP流量。 web并不特别;这只是人们倾向于用于“除了网络动态之外的其他东西”的惯例。
  • dyno比虚拟机更接近Docker容器,因此一般的最佳做法是每个容器有一种进程。

如果你真的只需要一个dyno(成本?),你可以编写第三个脚本,其唯一的工作是将workerfriend.py作为子进程生成。在这种情况下,一切都作为一个单元上下起伏;你不能独立管理好友和敌人。

希望有所帮助。