0

ウェブサイトの URL (http://domain.com/user.php?id=uniquetoken)の一部を php でバックグラウンドで実行する必要があります(注:ウェブサイトの URLには、html、php、javascript の ajax リクエストが含まれています)。

私は以下のコードを試しましたが、うまくいきません。誰かがこれのどこが悪いのか、または別の解決策を言うことができますか?

exec("wget http://domain.com/user.php?id=uniquetoken > /dev/null 2>&1 &");

Ps : 実際に必要なのは、ユーザーがサイトにアクセスしたときに、ブラウザを閉じた後でもバックグラウンド プロセスを実行する必要があることです (バックグラウンド プロセスが完了するまでに 2 分以上かかるため)。

4

2 に答える 2

2

実際、それは最善の方法ではありません。私は試していませんが、PHP プロセスが終了すると、exec()で開始した子プロセスも強制終了されます。ユーザーがページの読み込みをキャンセルすると、とにかく停止します。

バックグラウンド プロセス (たとえば、PHP-CLI スクリプト) を設定し、Web サイトの要求からそのプロセスをトリガーするためのメカニズムを設定する必要があります。たとえば、bg proc は db テーブル内の新しいレコードをチェックし、存在する場合はジョブを実行してからレコードを削除します。Web ページ PHP は、新しいジョブ命令レコードをそれに挿入する必要があります。

于 2012-10-15T10:29:06.187 に答える
-2

試してみてくださいfile_get_contents("http://domain.com/user.php?id=uniquetoken");

PHP には「fopen url wrappers」と呼ばれるものがあり、すべてのファイルシステム関数で HTTP や FTP なども使用できます。

于 2012-10-15T09:39:10.540 に答える