数千のレコードを実行するループがあり、ヒットするレコードごとに、サーバー上で画像のサイズ変更と操作が行われます。プロセスは小さなレコードセットでのテストではうまく実行されますが、ライブサーバーに移動したら、50レコード後にプロセスを一時停止して再開し、サーバーのパフォーマンスが低下したり、完全に終了したりしないようにします。
コードは次のようになります。
<cfloop query="imageRecords">
<!--create and save images to server - sometimes 3 - 7 images for each record -->
</cfloop>
私が言ったように、私は50のレコードの後で一時停止し、それからそれが中断したところから再開したいと思います。私は見ましcfschedule
たが、これにどのように取り組むかがわかりませんでした。
sleep()関数も調べましたが、ドキュメントではcfthread
タグ内でのこれの使用について説明しています。他の人は、長いプロセスをシミュレートするためにそれを使用することについて投稿しました。
ですから、sleep()
必要な方法で安全に使用できるかどうかはわかりません。
サーバーはCF9で、dbはMySQLです。