У меня есть два файла, file_a.php
и file_b.php
.В файле file_a.php
я пытаюсь выполнить file_b.php
как «фоновый процесс».Я попробовал два способа, которые я нашел здесь на stackoverflow, но я не могу заставить его работать:
file_a.php (решение exec)
echo "Start ".time()."<br>";
exec("php -f /Path/to/file/file_b.php /dev/null &");
echo "End ".time()."<br>";
file_a.php (решение curl)
echo "Start ".time()."<br>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.1.1:8888/file/file_b.php');
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);
curl_exec($ch);
curl_close($ch);
echo "End ".time()."<br>";
file_b.php (задержка 5 секунд и отправка образца письма)
set_time_limit(5);//setting five seconds delay
for ($i = 0; $i < 4; ++$i) {
sleep(1);
}
// the message
$msg = "line of text";
// send email
mail("testmail@test.io","My subject",$msg)
I 'я пытаюсь вызвать file_a.php
и выполнить file_b.php
без ожидания 5 секунд в file_a.php
, в точности как фоновый процесс.Есть способ управлять подобным поведением в PHP до PHP 7, для которого я видел несколько выделенных библиотек?