【问题标题】:How to run background processes on Bluemix?如何在 Bluemix 上运行后台进程?
【发布时间】:2016-07-22 11:25:41
【问题描述】:

我正在尝试让一个非常简单的 Python 程序作为 CloudFoundry 应用程序在 IBM Bluemix 上作为后台进程运行。

我已将其放入 Github repo。 有一个单行的 req 文件,因为我发现它比 setup.py 更容易,并且 python buildpack 需要它来运行。

我的完整用例是我有一个用 Django 编写的 API,我需要一个 MQTT 客户端,该客户端将在它旁边运行以从代理收集数据(我认为是 Watson IOT)。

我尝试在同一个 CF 应用程序中运行这两个应用程序,其中包含如下所示的 2 行 Procfile:

web: gunicorn -e DJANGO_SETTINGS_MODULE=conf.dev conf.wsgi --workers 2
worker: python time.py

但是第二个过程被忽略了。

我也尝试过当前配置,但 Procfile 只包含第二行,它告诉我找不到启动命令。

现在,使用 Manifest 中的启动命令和 true 中的 no-route,要么它没有通过运行状况检查,要么它只是在启动步骤等待,直到我收到此错误:

2016-07-22T13:10:36.671+0200
[LGR/null]
err
WebsocketListener.Start: Error connecting to a doppler server
2016-07-22T13:10:36.677+0200
[LGR/null]
err
proxy: error connecting to 159.8.128.238:8081: dial tcp 159.8.128.238:8081: getsockopt: connection refused

那么,有没有办法在 Bluemix 中运行后台任务,如果可能的话作为独立应用程序(更容易扩展和更新)?

编辑:现在它可以工作了,虽然我没有改变任何东西,除了一个错字来格式化我的 Python 脚本中的一个字符串,虽然应用程序几乎每分钟都会崩溃

Removing crash for app with id 3978a475-4dc6-495f-9662-a6fd562dc28a

【问题讨论】:

    标签: python ibm-cloud cloud-foundry


    【解决方案1】:

    问题的简短回答:一个单独的应用程序,其 no-route 参数设置为 true

    好的,所以我显然已经让它完全工作了。

    我不确定我做了什么,但问题可能来自我要求一个 32M 的实例,而最小值似乎是 64M,所以 Bluemix/CF 对我的需求不太满意,并且崩溃了。

    我在以前的尝试中使用 128M,但我想我当时没有输入 no-route: true

    【讨论】:

    • 这是正确的做法,一个没有路由的单独应用程序。
    • @opiethehokie 正是我想说的
    【解决方案2】:

    我使用该方法为 Web 和工作实例运行两个单独的应用程序。但是,我仍然被失败的健康检查绊倒。

    因此,对于工作人员,我建议禁用路由并另外禁用运行状况检查。

    以下清单适用于通过 gunicorn for web 和 celery for workers 运行 Django。

    我的manifest.yml

    ---
    applications:
      - name: myapp
        host: myapp
        domain: eu-de.mybluemix.net
        memory: 128M
        command: bash ./run_web.sh
    
      - name: myapp-workers
        memory: 128M
        no-route: true
        health-check-type: none
        command: bash ./run_worker.sh
    

    run_web.shrun_worker.sh shell 脚本包含运行组件的命令,对于 Web 实例,我在运行脚本中添加了迁移和收集命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2015-01-18
      • 2018-11-29
      • 2021-04-06
      相关资源
      最近更新 更多