Я использую PHP для отображения вывода Python в браузере. Поскольку для вывода вывода скрипту Python требуется много времени, пользовательский интерфейс зависает до тех пор, пока скрипт Python не завершит свое выполнение.
Pthreads для Windows включен в PHP для многопоточности shell_exec () функция, которая вызывает скрипт Python. Несмотря на использование Pthreads, пользовательский интерфейс все еще зависает.
Вот код:
$output_customer_churn_prediction = "";
class WorkerThreads extends Thread {
private $workerId;
public function __construct($id)
{
$this->workerId = $id;
}
public function run()
{
sleep(rand(0, 3));
echo "Worker {$this->workerId} ran" . PHP_EOL;
$output_customer_churn_prediction = shell_exec('python '.$_SERVER['DOCUMENT_ROOT'].'/analytics/python/neural-net-prediction-customer-attrition.py');
print_r($output_customer_churn_prediction);
}
}
$workers[0] = new WorkerThreads(0);
$workers[0]->start();
print_r($output_customer_churn_prediction, true);
Даже с многопоточностью пользовательский интерфейс (сгенерированный PHP) зависает при вызове скрипта Python Neural Net.
Что может быть причиной ?
Задача ещё не решена.
Других решений пока нет …