如何在Bluemix上运行后台进程?

2024-05-13 23:39:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我把它放进了Github repo。 这里有一行req文件,因为我发现它比设置.pypython构建包需要它来运行。在

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

我尝试在同一个CF应用程序中运行这两个程序,文件如下所示:

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

但第二个过程却被忽视了。在

我也尝试了当前的配置,但是Procfile只包含第二行,它告诉我找不到start命令。在

现在,使用清单中的start命令和no-routetrue处,要么它没有通过健康检查,要么只是在开始步骤等待,直到我得到这个错误:

^{pr2}$

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

编辑:现在它可以工作了,尽管我除了在Python脚本中格式化字符串之外,没有做任何修改,尽管应用程序几乎每分钟都会崩溃

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

Tags: 文件命令程序github应用程序进程confrepo
2条回答

我使用这种方法为web和worker实例运行两个独立的应用程序。然而,我还是被健康检查绊倒了。在

禁用其他工作进程的健康和路由检查。在

下面的清单适用于通过gunicorn运行Django,为工人提供web和芹菜。在

我的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.shshell脚本包含运行组件的命令,对于web实例,我在run脚本中添加了migration和collecstatic命令。在

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

好吧,看来我已经让它充分发挥作用了。在

我不知道我做了什么,但问题可能是因为我要求一个32M的实例,而最小值似乎是64M,所以Bluemix/CF对我的需求不太满意而崩溃了。在

我在以前的尝试中使用了1.28亿,但我想当时我没有把no-route: true放进去

相关问题 更多 >