我试图让一个非常简单的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-route
在true
处,要么它没有通过健康检查,要么只是在开始步骤等待,直到我得到这个错误:
那么,有没有一种方法可以在Bluemix中运行后台任务,如果可能的话,作为独立的应用程序(以更容易地扩展和更新)?在
编辑:现在它可以工作了,尽管我除了在Python脚本中格式化字符串之外,没有做任何修改,尽管应用程序几乎每分钟都会崩溃
Removing crash for app with id 3978a475-4dc6-495f-9662-a6fd562dc28a
我使用这种方法为web和worker实例运行两个独立的应用程序。然而,我还是被健康检查绊倒了。在
禁用其他工作进程的健康和路由检查。在
下面的清单适用于通过gunicorn运行Django,为工人提供web和芹菜。在
我的
manifest.yml
run_web.sh
和run_worker.sh
shell脚本包含运行组件的命令,对于web实例,我在run脚本中添加了migration和collecstatic命令。在问题的简短回答:一个单独的应用程序,其
no-route
参数设置为true
好吧,看来我已经让它充分发挥作用了。在
我不知道我做了什么,但问题可能是因为我要求一个32M的实例,而最小值似乎是64M,所以Bluemix/CF对我的需求不太满意而崩溃了。在
我在以前的尝试中使用了1.28亿,但我想当时我没有把
no-route: true
放进去相关问题 更多 >
编程相关推荐