人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

メールマガジンのシステムを、ASPにて製作しております。一度に送信する件数は、5,000件ぐらいを考えているのですが、送信途中ブラウザを閉じられても、バックグラウンドで送信できる方法はないでしょうか?
BASP21のFlushMailの機能を利用すると、できそうな感じがするのですが、詳しく説明されたサイトを見つけることができません。
(※1件、1件送信内容が微妙に違います。)

環境:Win2000 server IIS(5.0)、ASP、SQL Server

●質問者: ebagos
●カテゴリ:コンピュータ
✍キーワード:ASP IIS SQL Server サイト システム
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ちゃぼりん
●20ポイント

http://labo.heisei-tech.co.jp/Www/Asp/1.htm

基本的に、送信途中でブラウザを閉じられても、ASPであればどの命令を使ってもバックグラウンドで実行してくれますよ。


ASPの実行順序は下記のような感じなのですが、

---

(1)ブラウザで送信ボタンを押し、ブラウザーがASPサーバに送信する

(2)サーバ側で処理をする(ここでメールが送信される)

(3)結果のHTMLをブラウザに返す

---

送れないケースは、(1)が完了しない時だけです。つまり、サーバ側にPOST(またはGET)が完了した時点で、あとはブラウザを閉じようが何をしようが、サーバはきっちり仕事をしてくれる、ということです。


ただ、5000件をサーバサイドで送信するのはあまり良いとは思えません。

できるならば、ASPでは送信を予約しておき(つまりDBに送信予約テーブルを作成してそこに送信予定の情報をためこんでおいて)、あとで時間稼働のバッチプログラムから送信させるのが設計的には良いと思います。

http://windows.microsoft.com/windows2000/ja/server/iis/default.a...

Microsoft Windows 2000 Server ドキュメント

おそらく5000件とのことで、もしそのままASP上で一度に送信させようとすると、(2)の処理がものすごく長くなり、ASP側のスクリプトタイムアウトに抵触すると思います。

メール1通送るのには(同期送信だと)最低でも0.5秒程度かかるので、5000通だと2500秒=45分程度はかかるはずです...!!

ちなみにscripttimeout自体のデフォルト値は90ですので、せいぜい200通弱程度送信したところでタイムオーバーです。


このserver.scripttimeoutをいじれば、この時間は操作可能ですが、先ほども書いたように、なるべくサーバにバッチプログラムを設置して実行することを(強く)お薦めします。


2 ● ilovegarbage
●20ポイント

http://www.atmarkit.co.jp/fwin2k/win2ktips/582schtasks/schtasks....

@IT:Windows TIPS -- Knowledge:タスク・スケジューラをコマンド・プロンプトから制御する

ASPでは配信リクエストを受け付けてファイルやDBにキューとして残すだけにしておき、バッチ(タスクスケジューラ)で配信を実行するのが良いと思います。

タスクはschtasksコマンドで作ると楽ですよ。

バッチの起動間隔を狭める場合は、同じキューを同時に実行してしまわないよう、プログラムの先頭でロックファイルを作っておき、終了してロックファイルが消されるまでは後から実行されたプログラムが動作しないようにしないと何通も送信されますのでご注意を。


3 ● sho1008
●20ポイント

http://www.yahoo.co.jp/

Yahoo! JAPAN

送信件数、宛先、内容、結果をSQLServerのDB内に持ち、

ブラウザ→BASP21の呼び出しをバッチ形式の

非同期で呼び出すのはどうでしょうか?

VBScriptのRunメソッドだったかexecメソッドだったかは

忘れてしまいましたが、非同期処理が可能です。

ですので、「送信ボタン」からはバッチ呼び出しだけにしてしまい、

非同期ながらASPの方からDBへアクセスし、

送信状況をブラウザにリアルタイム表示してあげれば良いかと思います。

それならば途中で閉じられても問題ないですよね!?

その代わり送信エラーのものに関しては

ログ監視や画面に表示させるなどの

仕組みが必要かと思います。

参考にしてみて下さい。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ