这是我想要做的: 我想制作一个类似可执行文件的'使用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的东西。 提前谢谢!
答案 0 :(得分:0)
PHP没有应用程序启动'本身,但听起来你可能想要a cron job。您可以创建一个cron作业,每隔几分钟运行一次,它将在没有任何用户交互的情况下启动其功能。在cron作业中设置条件标志将确保代码只运行一次。
或者,您可以在访问者加载特定页面时执行函数。此函数可以设置一个标志(作为$_SESSION
变量)来检查函数是否已经运行:
<?php
session_start();
if(!isset($_SESSION['done'])) {
doSomething();
}
function doSomething() {
// Do something
$_SESSION['done'] = 'yes';
}
?>
这样,如果需要,你可以让每个访问者触发一次该功能。
希望这有帮助! :)