我阅读了关于如何推送/启动应用程序的cloudfoundry文档:
但是,当cf push
命令或cf start
命令退出时,它们都没有说明。
例如,我有一个nodejs应用程序,它可以通过命令npm start
启动,当在本地机器上运行时会阻塞:
$ npm start
> my-app@0.0.1 start /example-deployment-cf
> node index.js
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
我永远不知道nodejs何时监听tcp端口,除了我在我的应用程序中通过" start"的事件处理程序打印出来的东西。事件
$ cf push
...
1 of 1 instances running
App started
Showing health and status for app shawnzhu-test-node in org me@example.com / space dev as me@example.com...
OK
requested state: started
instances: 1/1
usage: 512M x 1 instances
urls: shawnzhu-test-node.pivotal.io
state since cpu memory disk
#0 running 2014-05-12 02:32:05 PM 0.0% 56.1M of 512M 26.4M of 1G
它只是(并且神奇地)告诉"应用程序启动"但没有说明何时(以及为什么)。
在现实世界中,npm start
中会有很多函数调用,就像页面生成一样,在cf push
命令退出后应用程序可能还没有准备就绪。因此,我仍然需要在代码中使用事件处理程序来打印日志条目,例如"完成生成页面"。
所以我的简单问题是," app的实际意义是什么?#34;在cloudfoundry中(在阅读其代码之前)。
答案 0 :(得分:0)
如果路由被分配给推送的应用程序(例如,在您的情况下为shawnzhu-test-node.pivotal.io),则Cloud Foundry将检查URL是否返回200并报告它是否正在运行。
您还可以执行" cf logs shawnzhu-test-node"从应用启动过程中查看更详细的输出。