重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

mail.phpを叩くとメルマガの配信がスタートするとします。
ブラウザでmail.phpにアクセスすると、メールの配信数が多い場合、全ての配信が終わるまでブラウザは応答待ちとなってしまいます。
cronをトリガーにした場合は、ブラウザは応答待ちとなりませんが、即配はできません。

ブラウザが待機待ちとならずに即配するには、どのような方法がありますでしょうか?
ご教示頂けると幸いです。
宜しくお願いいたします。

A 回答 (5件)

サーバーサイドのバックグラウンドで処理する方法は既に回答がありますが、クライアント側で非同期で通信する方法もあります。


ブラウザが限定されますが、HTML5から実装されるWebWorkerを使えば非同期でマルチスレッドが扱えます。この質問はPHPカテゴリですが、WebWorkerはJavaScriptから操作することになります。
    • good
    • 0
この回答へのお礼

皆さん、回答ありがとうございました。
参考になりました。

お礼日時:2012/08/07 06:24

あとはwgetなどクロールしてくれるプログラムを非同期モードで走らせるとか

    • good
    • 0

OSがUNIX系であればバックグラウンドで動かすように


system系の関数でメール配信プログラムのCGIを動かしてやるとか。
    • good
    • 0

「php バックグラウンド」や「php マルチスレッド」で検索するといろいろ見つかると思います。



レンタルサーバなどではシステムコールなどを禁止にしているところもあると思いますので確認してください。
(プログラムが間違ってないのに動かない場合は禁止されていると考えた方が良い)
    • good
    • 0

そりゃ同期なんだからブラウザが待ちになるのは当たり前。


それが嫌ならAJAXでも使うしかない。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!