0

それが正しい質問かどうかはわかりません。

問題は、データベースに保存されているユーザーとその電子メールのリストを持っているということです。

今、私はループの助けを借りて、時間間隔の遅延(5〜10秒かもしれません)を設定して、それらすべてに電子メールを送信したいと考えています。

foreach($users as $user){
     //code to send the email
}

私はおよそ50人のユーザーを持っています。では、ループが完了するまでコードは実行されるのでしょうか? つまり、それは正しい方法ですか?

将来、数百人または数千人のユーザーがいる場合はどうなりますか?

4

3 に答える 3

4

デフォルトの最大実行時間は30秒です。php.iniこれは、ファイルに移動してオプションを変更することで簡単に変更できmax_execution_timeます。

PHP スクリプト内で最大実行時間を変更したい場合は、この関数を使用できます: set_time_limit ( int $seconds )、後でこれらの変更を元に戻すこともできます。

//Settings time limit to 0 will make the script execute without time limit(see comments).
set_time_limit (0);

foreach($users as $user){
     //code to send the email
}

set_time_limit (30);
于 2013-05-19T17:55:42.917 に答える
0

http://php.net/manual/en/info.configuration.php

デフォルトでは、max_execution_time は 30 秒です。しかし、電子メールを送信しているときに、すべてのユーザーに対してスクリプトを 5 ~ 10 秒間停止させたい理由がわかりません。代わりに、cron ジョブを確認することをお勧めします。

于 2013-05-19T17:55:43.107 に答える
0

この問題は、最大実行時間のサーバー構成に属しています。ここで読むことができますPHP スクリプトの最大実行時間を設定するにはどうすればよいですか?

于 2013-05-19T17:56:07.940 に答える