1

Webページをスクレイピングするために広範なcurlリクエストを行うphpプログラムがあります。最大で 100 万件のリクエストになる可能性があります。スクリプトの実行を完全に停止する必要があります。ブラウザで停止しましたが、まだリクエストを処理しています。どうすれば永久に停止できますか?

4

4 に答える 4

5

リクエストを強制終了しているだけです。今のところ停止するには、apache を停止する必要があります。将来的には、プロセスがキル スイッチ (ファイルの存在など) を探し、見つかった場合は処理を停止するように再設計します。長時間実行されるプロセスをphpスクリプトに詰め込んでいるように聞こえますが、通常のシステムプロセスとして直接実行してみませんか?

于 2013-01-09T18:04:26.477 に答える
4

通常のランプ スタックを実行していると仮定すると、必要に応じてマシンに SSH で接続し、Apache を再起動します。

PHP で実際に長時間実行するタスクを実行する場合は、cron を使用してそれらを実行するか、ある種のタスク キューを実装することを検討することをお勧めします。一般に、この種のものをブラウザのリクエストから発火させるのは、非常に悪い考えです。

于 2013-01-09T18:04:02.560 に答える
2

アパッチを再起動します。XAMP を使用している場合は、コントロール パネルから停止および開始します。

そうでない場合、Windows では、タスク マネージャーに移動してapache.exeプロセスを終了します。その後、もう一度開始します。

于 2013-01-09T18:03:25.497 に答える
1

なぜ誰もがあなたがApacheを実行していると思い込んでいるのですか?Web サーバーを再起動すると、うまくいくはずです。将来的には、(例) のようなキル スイッチを使用できます。

while(!file_exists('stop.txt'))

次に、停止する準備ができたら、そのファイルを作成します ^.^ または、終了する前に反復回数を有限にしてください。

于 2013-01-09T18:08:34.333 に答える