• 締切済み

メルマガを即配するには

mail.phpを叩くとメルマガの配信がスタートするとします。 ブラウザでmail.phpにアクセスすると、メールの配信数が多い場合、全ての配信が終わるまでブラウザは応答待ちとなってしまいます。 cronをトリガーにした場合は、ブラウザは応答待ちとなりませんが、即配はできません。 ブラウザが待機待ちとならずに即配するには、どのような方法がありますでしょうか? ご教示頂けると幸いです。 宜しくお願いいたします。

みんなの回答

  • tracer
  • ベストアンサー率41% (255/621)
回答No.5

サーバーサイドのバックグラウンドで処理する方法は既に回答がありますが、クライアント側で非同期で通信する方法もあります。 ブラウザが限定されますが、HTML5から実装されるWebWorkerを使えば非同期でマルチスレッドが扱えます。この質問はPHPカテゴリですが、WebWorkerはJavaScriptから操作することになります。

phpmysql
質問者

お礼

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

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

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

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

OSがUNIX系であればバックグラウンドで動かすように system系の関数でメール配信プログラムのCGIを動かしてやるとか。

  • luka3
  • ベストアンサー率72% (424/583)
回答No.2

「php バックグラウンド」や「php マルチスレッド」で検索するといろいろ見つかると思います。 レンタルサーバなどではシステムコールなどを禁止にしているところもあると思いますので確認してください。 (プログラムが間違ってないのに動かない場合は禁止されていると考えた方が良い)

回答No.1

そりゃ同期なんだからブラウザが待ちになるのは当たり前。 それが嫌ならAJAXでも使うしかない。

関連するQ&A