如何在openshift中加载web应用程序启动时的功能

时间:2017-02-06 20:56:50

标签: java php openshift

这是我想要做的: 我想制作一个类似可执行文件的'使用doSomething()函数在Web服务器上运行的应用程序。在Web应用程序启动时,doSomething()函数通过Web套接字作为客户端连接到另一个MQTT服务器,在那里进行订阅,并将传入的消息存储到数据库。我不关心doSomethihg()函数的内容。我可以做这个。我只对在Web服务器中制作deamon应用程序感兴趣。 此应用程序将在glassfish(java)或apache(php)中运行。 我将在openshift中将此应用程序部署到另一个类似的PAAS中,因此它必须是一个Web应用程序,而不是一个独立的应用程序。另外,我想我不具备执行shell脚本的能力。 我只找到了用java做这个的方法;创建一个servlet并将其配置为在应用程序启动时运行(在web.xml文件中使用load-on-startup)。我不知道这是否是最有效的,我没有找到任何关于PHP的东西。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

PHP没有应用程序启动'本身,但听起来你可能想要a cron job。您可以创建一个cron作业,每隔几分钟运行一次,它将在没有任何用户交互的情况下启动其功能。在cron作业中设置条件标志将确保代码只运行一次。

或者,您可以在访问者加载特定页面时执行函数。此函数可以设置一个标志(作为$_SESSION变量)来检查函数是否已经运行:

<?php

session_start();
if(!isset($_SESSION['done'])) {
    doSomething();
}


function doSomething() {
    // Do something
    $_SESSION['done'] = 'yes';
}

?>

这样,如果需要,你可以让每个访问者触发一次该功能。

希望这有帮助! :)