Shell_exec 函数工作正常但运行后不允许 PHP 中的其他活动或函数

问题描述 投票:0回答:0

我的网站有报告下载功能。完成下载需要将近 15 分钟以上的时间。虽然此功能运行我的网站,但不允许打开我网站中的其他页面或其他活动。我也不想使用 cron 作业,因为它不是常规任务。

为了克服这个问题,我编写了 shell_exec 来调用用户按钮点击并在完成后发送一封带有附件的电子邮件。它工作正常但它也不允许用户打开主页也仍然在后端完成。请建议任何人如何实现这一目标。

我的主要动作是用户一旦点击下载按钮,我必须在后端调用一个函数,用户必须做其他活动,比如打开主页或搜索其他任何东西。

public function downloadtest_new() {
    $data = $_POST;
    $post_data = http_build_query($data);
    $url = base_url()."home/downloadreport_new";
    $command = "curl -X POST -d '$post_data' '$url'";
    $output = shell_exec($command);
    echo "<script>window.close();</script>";
}

在 downloadreport_new 中有一个从 sql 中检索数据并将其作为 csv 发送到用户电子邮件的逻辑。功能运行良好,但用户在完成时无法执行任何其他任务。

php shell-exec
© www.soinside.com 2019 - 2024. All rights reserved.