2009-08-14 11 views
0

asp.net Webサイトから一度に多くのSMSメッセージを送信する必要があります。また、受信メールのPOP3アカウントをポーリングしてからSMSを受信者に送信します一度に。私のアプリケーションのプログラミング設計アーキテクチャ

これを行う方法は、SQLのバックエンドに接続して、10〜20秒ごとなどのSMSメッセージが送信されるかどうかを確認するWindowsサービスです。その場合は、リスト内のすべてのメッセージを取得し、それらをテーブルから削除してから送信してください。

popアカウントと同じ方法です。

asp.netのWebページが公開されたときにブロックされずにこのサービスを提供する方法に関するアイデア(SQL Serverに追加されたメッセージなど)

プラットフォームは、Windows Server 2003 R2、SQL Server 2008 Standard、asp.net 3.5 SP1です。

ご協力いただきありがとうございます。

答えて

2

SQL Serverサービスブローカーのキューメカニズムを使用して同様のシナリオを実装しました。この考え方は、挿入されたすべてのSMSレコードがSmsIDを含むメッセージをサービスブローカのキューに挿入するトリガによって捕捉されることです。

次に、キューからメッセージを受け取るストアドプロシージャが必要です。メッセージがない場合は、次のエントリが挿入されるまでプロシージャが実行されます。これはOKです。キューを聞くためのリソースを消費しないからです。

次に、継続的に(再帰的に)STPを呼び出し、SMSを組み立てて送信するWindowsサービスが必要です。

テーブル内のフラグに対するService Broker Queueの利点は、スレッドの安全性です。このようにして、並行性の問題についてあまり気にしなくてもよいように、サービスのインスタンスをたくさん持つことができます。

はあなたがここに素敵なサービスブローカtutoialを見つけることができます:http://www.developer.com/db/article.php/3640771

+0

2〜3年前に尋ねられた場合は、SQL Notificationサービスをお勧めしますが、今はSQL 2005標準でしか動作しないことが知られています... SQL 2008では通知サービスは推奨されなくなりました。サービスブローカで提供される機能性のため、+1に投票します –

1

代わりにあなたがこのためにMSMQ(Microsoftメッセージキュー)を使用することができ、キューイングのためにSQL Serverを使用します。

MSMQはセットアップが非常に簡単で、一度起動するとSql Serverよりスケーラビリティが向上します。

だから、送信したいメッセージを受け取るMSMQの新しいキューをセットアップする必要がありました。メッセージは通常、メッセージ、送信者、受信者を記述する何らかの種類のMessageオブジェクトです。

その後、一定の間隔でキューをポーリングするサービスをセットアップするか、新しいメッセージがキューに送信されるたびにMSMQが選択したクラスを開始するように設定できます。

メッセージのログが必要な場合、メッセージが送信されたときにサービス/送信者オブジェクトがSQL Serverのログに書き込むことができます。

関連する問題