[解決済み] 長時間稼働するPHPスクリプトを管理する最良の方法とは?
2023-05-20 04:14:06
質問
完了までに長い時間 (5~30分) を要する PHP スクリプトがあります。念のため説明すると、このスクリプトは他のサーバーからデータをスクレイピングするために curl を使用しています。これは、処理する前に各ページがロードされるのを待ち、次のページに移動する必要があるため、非常に時間がかかる理由です。
私は、スクリプトを開始し、それが完了するまで放っておくことができるようにしたいのですが、これはデータベース テーブルにフラグを設定します。
私が知る必要があるのは、スクリプトの実行が終了する前に http リクエストを終了させることができる方法です。また、これを行うには、PHP スクリプトが最良の方法でしょうか?
どのように解決するのですか?
確かにそれは PHP で行うことができます。しかし、バックグラウンドタスクとしてこれを行うべきではありません - 新しいプロセスは、それが開始されたプロセスグループから解除されなければなりません。
この FAQ に対して同じような間違った答えを出し続けている人がいるので、ここに完全な答えを書きました。
http://symcbean.blogspot.com/2010/02/php-and-long-running-processes.html
コメントより
<ブロッククオート
ショートバージョンは
shell_exec('echo /usr/bin/php -q longThing.php | at now');
ですが、その理由はここに含めるには少し長いです。
関連
-
[解決済み】予期せぬ例外。SQLSTATE[HY000] [1045] Access denied for user ****@'localhost' (using password: YES)
-
[解決済み】変な電話番号を生成するフェイカー?
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】phpMyAdmin: シークレットパスフレーズ?
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み】警告: file_get_contents(): https:// ラッパーがサーバー構成ですべて無効になっています。
-
[解決済み] $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて
-
[解決済み] PHPスクリプトからJSONを返す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み] コマンドの同期がとれていない。
-
[解決済み】予期せぬ例外。SQLSTATE[HY000] [1045] Access denied for user ****@'localhost' (using password: YES)
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み] フォームが送信された後、バックグラウンドでPHPスクリプトを実行するにはどうすればよいですか?