68user's page 掲示板

Prev< No. 509〜512> Next  [最新発言に戻る] [過去ログ一覧]
No. 509 # 68user 1999/11/02 (火) 23:11
> たとえば1000のデータが入った@DATAがあるとします
配列 @DATA に既にデータが入っているのですか? なら splice を
使えばいいでしょう。「100ずつ順に」*何をしたいのか* が
わからないので、これ以上はなんとも言えません。

read/seek は、配列 @DATA が空で、ファイルから @DATA に
読み込むときに使うものです。でもまぁ perl なら、わざわざ
read/seek のような低レベルな関数を使う必要はないでしょう。

No. 510 # ひでさん [E-mail] 1999/11/02 (火) 23:28
ありがとうございます
実は、前の質問と関連がありまして
データーに入ったメールアドレスをBCCで送信する際に
一度に多くのデーターを打ち込むとサーバに負担が掛かると思い
たとえば100ずつ読み込んで送信をしたいというわけなんです
一般的に一度にどれくらいのBCCだったら遅れるんでしょうか?
サーバのレスポンスも関係があると思いますが・・。

No. 511 # 68user 1999/11/02 (火) 23:42
@DATA に1000個入っていて、100ずつ送信したいなら
    while (@DATA){
        @addrs = splice(@DATA,0,100);
        $CC = join(",\n ",@addrs);
        メール送信
    }
でいいです。

でもまぁ、1000 送るならそれなりに時間がかかりますが、負荷がうんぬんと
いうよりは、SMTPサーバが
    DNS(MX)引いて
    相手先に connect して
    SMTP しゃべって
    本文を送る
のに時間がかかる、という感じでしょうか。ほとんどは相手を待ってるだけです。

別に1000個 Bcc が書いてあっても、並行して1000のコネクションを
張るわけではないので(SMTPサーバの仕様にもよりますが)、マシンの
負荷はそんなに気にしなくてもいいでしょう。

それでも1000は多いと思うなら、100ごとに分割すればいいんじゃ
ないんでしょうか。ただしテストは入念にやって下さい。

No. 512 # ひでさん [E-mail] 1999/11/02 (火) 23:50
68userさん
重ね重ねありがとうございます
十分検討&テストしてやってみます
本当にありがとうございます

Prev< No. 509〜512> Next  [最新発言に戻る] [過去ログ一覧]