完璧に機能するphpメール送信機を作成しています。
データベースからすべてのユーザーを選択し、それらに電子メールを送信することは良いことです。
しかし、大量のメールを送信する必要があるため、サーバーに過負荷をかけないように、[ 1000 ] でメールのトランザクションを開始および一時停止したいと考えています。
例:
選択: 1000;
MYSQL を一時停止
別の 1000 を選択します。
MYSQL を一時停止
等。
START TRANSACTION、COMMIT、および ROLLBACK 関数について読みましたが、これを正しく実装したと思います..
トランザクションを ROLLBACK する前に 100 秒の一時停止を含めるのを手伝ってくれる人はいますか?
どうすればいいのかわからない..
今まで得たもの【プレフィックスコード】..
$最大=1000;
$send=0;
$ロールバック = false;
mysql_query('START TRANSACTION;');
$query = mysql_query("SELECT DISTINCT mail_id, customers_email_address ニュースレター WHERE ORDER BY mail_id ASC");
while($result=mysql_fetch_array($query){
if( $ロールバック == true ){
$ロールバック = false;
mysql_query("ROLLBACK;");
}
[-----メール送信スクリプト-----]
$send++;
if( $max == $send ){
mysql_query("COMMIT;");
$ロールバック = 真;
}
}
乾杯ジェイ