0

PHP を使用して、ブラウザーに Python の出力を表示しています。Python スクリプトは出力を表示するのに時間がかかるため、Python スクリプトの実行が完了するまでユーザー インターフェイスがハングします。

Pthreads for Windows は、Python スクリプトを呼び出すshell_exec( )関数をマルチスレッド化するために、PHP で有効になっています。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); 

マルチスレッドを使用しても、Python Neural Net スクリプトの呼び出し中にユーザー インターフェイス (PHP によって生成された) がハングします。

何が原因でしょうか?

4

1 に答える 1

0

PHP は出力をキャッシュしています。出力キャッシュを無効にする必要があります。その後、ブラウザはハングしません。

ob_flush() を参照

于 2019-12-22T06:35:56.217 に答える