処理に約 10 分かかる AJAX スクリプトがあります。ユーザーに「ちょっと聞いてください。タスクは完了しています。結果がどうなるかをお知らせします」と伝えたいのですが、それまではユーザーがサーバー上で他のスクリプトを実行することはできません。完了します (これは、PHP がシングル スレッドであるためだと思いますが、よくわかりません)。その AJAX スクリプトを別の PHP または Apache プロセスに割り当てて、ユーザーがタスクの完了を待たずにアプリケーション内をクリックし続けることができるようにする方法はありますか?
質問する
1940 次
2 に答える
3
データベースまたはファイルを使用してロックメカニズムを挿入し、タスクが同時に複数回実行されるのを防ぐことができます。次に、コマンドを使用して PHP プロセスを生成する必要がありますnohup
(ハングアップする必要はありません)。詳細については、https: //nsaunders.wordpress.com/2007/01/12/running-a-background-process-in- php/またはこの質問: nohup: run PHP process in background .
于 2012-09-21T23:39:46.867 に答える
0
私は何時間も探していますが、少なくともCron Jobsを使用すると、解決策は非常に簡単でした。cPanelでは、[Advanced] -> [Cron Jobs] に移動して、コマンド ラインで PHP スクリプトを使用してタスクをスケジュールできます。
スクリプト php を実行するコマンドの例:
/usr/bin/wget http://www.example.com/miscript.php
またはそれ以上:
php /home/USER/public_html/miscript.php
于 2014-04-09T15:22:48.250 に答える