我有两个PHP文件,一个用于“重活”,另一个用于快速响应并将请求传递给“重活”文件,使得快速响应文件能够立即响应服务器请求(至少这是目标)。这个前提是Slack Slash命令需要一个即时的200状态码来告知用户命令正在运行。
<?php
echo("I want this text to reply to server instantly");
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$code = '200';
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://myheavyliftingfile.php",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "datatobeusedbyheavylifter:data",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: application/x-www-form-urlencoded",
"postman-token: 60757c65-a11e-e524-e909-4bfa3a2845fb"
),
));
$response = curl_exec($curl);
?>
似乎发生的情况是,我的响应/回显直到我的heavylifting.php curl完成才被发送到Slack,即使我希望我的响应立即发生,而重载过程本身是分开的。如何让一个PHP文件确认请求,在不等待长时间处理完成的情况下启动另一个文件上的进程并作出响应?
更新:
我不想同时运行多个curl,我只想执行一个curl,但不必等待它返回以便向Slack返回一条消息表示我已收到请求。我的curl将数据发送到执行繁重工作的其他php文件。如果这仍然是定义在重复中的相同问题,请随时再次标记它,我不会重新打开它。