在后台执行PHP脚本...对我的案例最好的解决方案是什么?

Cyb*_*rix 3 php background-process

我正在开发一个电子邮件系统,我必须为公司插入CMS.我正在寻找一种方法,使电子邮件发件人脚本在后台运行,而管理员可以导航甚至关闭浏览器.

我找到了名为PHP的函数ignore_user_abort(),即使它已经超时,它也是保持页面运行所必需的.

现在我有三个"启动脚本"的解决方案:

  1. 我可以使用iframe

  2. 我可以使用我之前配置的Ajax调用很早就超时.例如:使用jQuery框架:$.ajaxSetup({ timeout: 1000 });

  3. 我可以使用一个cron作业,但我想避免这个解决方案,因为它们是"虚拟的"并且在该服务器上不稳定.

还有其他解决方案吗?我不喜欢iframe解决方案,但我已经将它们与Ajax上传器脚本一起使用了.

我不希望管理员点击F5并启动它的第二个实例.

该公司的用户被告知只使用Firefox登录CMS.谢谢

Jan*_*čič 10

您可以在后台运行PHP脚本Exec().

php docs提供了一个如何做到这一点的例子:

function execInBackground($cmd) { 
    if (substr(php_uname(), 0, 7) == "Windows"){ 
        pclose(popen("start /B ". $cmd, "r"));  
    } 
    else { 
        exec($cmd . " > /dev/null &");   
    } 
}
Run Code Online (Sandbox Code Playgroud)