在Openshift中,如何在主server.js启动之前预启动脚本?

时间:2016-09-11 18:38:11

标签: openshift

我想在server.js启动之前启动crawler.js从Internet获取一些页面。我试图将package.json更改为' "脚本":prestart:crawler.js'。但似乎它不起作用。有谁知道为什么?

1 个答案:

答案 0 :(得分:1)

仅当您通过package.json命令启动节点应用程序时,npm start中描述的

预启动脚本才有效。有关此内容的更多信息:12

如果您使用本地计算机,这是完美的方式,但OpenShift以不同的方式工作。它使用node-supervisor来运行您的节点应用。默认情况下,此主管从您的$ OPENSHIFT_REPO_DIR运行node server.js以启动您的节点应用。你无法改变这种行为。

Openshift允许您为此类作业定义Action Hook。你必须编写脚本(在shell或python或ruby等中)并将它们放在<repository>/.openshift/action_hooks中。这些脚本由OpenShift在不同时间执行,如Cartridge启动,停止,重启或默认构建生命周期。仔细阅读documentation,了解它们的工作原理并在您的应用中使用它们。

还有一个示例操作挂钩,用于检查MongoDB数据库中是否有数据,如果没有,则从应用程序的git存储库导入数据。