si tiene un script largo, divida el trabajo de la página con la ayuda del parámetro de entrada para cada tarea. (luego cada página actúa como hilo) es decir, si la página tiene 1 lac product_keywords ciclo de proceso largo, entonces en lugar del ciclo haga lógica para una palabra clave y pase esta palabra clave de magic o cornjobpage.php (en el siguiente ejemplo)
y para el trabajador en segundo plano, creo que debería probar esta técnica; le ayudará a llamar a tantas páginas como desee, todas las páginas se ejecutarán a la vez de forma independiente sin esperar la respuesta de cada página como asincrónica.
cornjobpage.php // página principal
<?php
post_async("http://localhost/projectname/testpage.php", "Keywordname=testValue");
?>
<?php
function post_async($url,$params)
{
$post_string = $params;
$parts=parse_url($url);
$fp = fsockopen($parts['host'],
isset($parts['port'])?$parts['port']:80,
$errno, $errstr, 30);
$out = "GET ".$parts['path']."?$post_string"." HTTP/1.1\r\n";
$out.= "Host: ".$parts['host']."\r\n";
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
$out.= "Content-Length: ".strlen($post_string)."\r\n";
$out.= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
fclose($fp);
}
?>
testpage.php
<?
echo $_REQUEST["Keywordname"];
?>
PD: si desea enviar parámetros de URL como bucle, siga esta respuesta: https://stackoverflow.com/a/41225209/6295712