-3

サーバー上に多数のファイルを作成する PHP スクリプトがありますが、残念ながら実行時間が長すぎます。私のホスティング プロバイダーには 90 秒の時間制限があり、スクリプトが完了するまでに最大 1 時間かかる可能性があります。Set_Time_Limit はホスティング プロバイダーによってブロックされており、スリープ機能を組み込んでもスクリプトは実際には一時停止しません。90 秒後に停止しないように一時停止を組み込む別の方法はありますか?

ありがとう!サンダー

4

4 に答える 4

4

ホストに不満を感じている理由はわかりますが、ホストは顧客のためにこのようなことをしています。1 つのプロセスがすべての処理能力を占有できる場合、サーバー上の他のすべてのサイトの速度が低下します。

レコードごとにそのような処理が本当に必要な場合、共有ホストは適切なソリューションではありません。専用サーバーが必要です。

ただし、私の推測では、実際の問題に対する実際の解決策は、処理能力を高めることではなく、プログラムのパフォーマンスを修正することです。1 つのレコードを処理するのに 45 秒かかることについては説明していませんが、そんなに時間がかかる場合は、非常に印象的なものを作成する必要があります。おそらく、それは改善の余地がたくさんあることを意味するだけです。

コードの実行速度が非常に遅い原因を突き止めるために、少しプロファイリングを行うことをお勧めします。少し手を加えるだけで、速度を少なくとも 1 桁、場合によってはそれ以上下げることができると確信しています。

于 2013-01-04T12:12:30.110 に答える
1

「2 つのレコードを処理するのに約 90 秒かかります」

一度に 1 つのレコードを処理し、カウンターをインクリメントし、ページを更新し、次のレコードを処理するようにします:-)

于 2013-01-04T12:00:37.270 に答える
1

残念だけど違う。それを細かく分割するか、execまたはsystemを使用してバックグラウンド ジョブを実行する必要があります。

また

ここに別のアプローチがあります

于 2013-01-04T12:08:38.433 に答える
0

コードのことを詳しく知らないと少し難しいですが、スクリプトが複数回呼び出されるようにコードを記述する必要があると思います。cron ジョブを実行する可能性はありますか? スクリプトは x 分ごとに実行され、ネストされた y ファイルをキューに入れることができます。

そもそもなぜこれらすべてのファイルを作成するのでしょうか? 良い考えのようには聞こえません..

于 2013-01-04T11:57:09.983 に答える