【问题标题】:What is Procfile? and Web and Worker什么是Procfile?和 Web 和 Worker
【发布时间】:2013-04-14 06:00:22
【问题描述】:

是否需要在 Procfile 中提供 'worker' 信息?如果是,那么它实际上是什么?我已经在Procfile 中添加了web: node server/server.js 详细信息。

【问题讨论】:

    标签: node.js mongodb heroku procfile


    【解决方案1】:

    如果您打算使用某种后台作业系统(即为以后排队长时间运行的任务),您只需要在您的 Procfile 中输入一个“工人”条目。 Heroku 在这里有更多信息:

    https://devcenter.heroku.com/articles/procfile

    【讨论】:

    • 另外,“工人”这个名字是任意的。您可以在 procfile 中随意命名它们; “工人”、“电子邮件”、“sidekiq”、“ladygaga_twitter_feed_watcher”。这允许您独立管理每种类型($ heroku ps:scale emailer=2)。事实上,如果 procfile 中有多个“worker”类型,则只会使用最后列出的一个。
    • @Patrick 当然。我相信 Heroku 为 worker 设置了一些默认值(对于 Rails 应用程序,它可能运行 rake jobs:work),但除此之外,名称是用户的。
    【解决方案2】:

    Procfile 是一种机制,用于声明应用程序的 dyno 在 Heroku 平台上运行的命令。

    来自Process Types and the Procfile,这是一个很好的介绍,但基本上您使用 Procfile 来告诉 Heroku 如何运行您的应用程序的各个部分。每行冒号左边的部分是进程类型;右边的部分是启动该进程的命令。

    进程类型可以是任何类型,尽管web 是特殊的,因为Heroku 会将HTTP 请求路由到以web 名称启动的进程。其他进程(例如后台工作进程)可以任意命名,您可以使用 Heroku 工具带通过引用其名称来启动或停止这些进程。

    因此,简而言之,worker 不是必需的,除非您想通过controlling process with the heroku ps command 在后台运行其他进程。

    【讨论】:

    • blog.daviddollar.org/2011/05/06/introducing-foreman.html 这也是一个很好的主题介绍。
    • @Kashyap 好电话。值得注意的是,Heroku Toolbelt 将在本地安装 Foreman,因此您可以使用相同的 Procfile 在开发中运行您自己的应用程序。
    • 嘿伙计们,实际上我遇到了一个错误,我将其发布在这里 - 如果您能查看一下,那就太好了。我挠头想解决这个问题,但失败了。 stackoverflow.com/questions/16129625/…
    • Procfiles 是配置foreman,对吧?所以从技术上讲,你可以在任何地方运行foreman,而不仅仅是在 Heroku 上?
    • 感谢Other processes, such as background workers, can be named anything - 这些事实很重要,但经常被忽视
    【解决方案3】:

    我正在关注有关 Nestjs 和 aws Elastic Beanstalk 部署的 Udemy 课程,但是它一直无法部署,直到我使用以下内容创建 Procfile:

    web: npm install && npm run-script build && npm run-script start:prod

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-01
      • 2020-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      相关资源
      最近更新 更多