2009-05-25 11 views
1

私たちのプロジェクトでは、サードパーティの サービスプロバイダからsmsメッセージを受け取った後、正確に3分後にデータベースを更新するためにSQLクエリを実行する必要があります。特定のポイントiofの後にSQLクエリを実行する

どうすればよいですか?提案は受け入れられます。

**は、ストアドプロシージャを使用して、それは可能です...

正確なシナリオがあり、我々は仲介者のサービスアプリケーションを持っている、それがWebサービスを持って検討してください。私のアプリケーションから、SMSサービスプロバイダーにWebサービスアプリケーションにSMSを送信すると、このシステムは組み込みデバイスにプッシュし、システムをONにします。 2分後にデバイスがSMSサービスプロバイダからSMSアプリケーションプロバイダにSMSメッセージを送信して、チェックが行われていると言うメッセージが表示されます。このメッセージを受信した後、ちょうど私はchekcingが成功裏に完了したというデータベースを更新する必要があります。なぜこの時間のデバイスの後に正確に3分がオフになるので。

に関して、 マヘシュ

+0

ここでSMSメッセージを受信して​​いますか? –

+0

アプリケーションクライアントまたはサーバーの視点からどれくらいの時間が必要ですか?たとえば、ネットワークの待ち時間を考慮する必要がありますか? –

+0

シナリオは、メディエータサービスアプリケーションにWebサービスがあると考えていることです。私のアプリケーションから、SMSサービスプロバイダーにWebサービスアプリケーションにSMSを送信すると、このシステムは組み込みデバイスにプッシュし、システムをONにします。 2分後にデバイスがSMSサービスプロバイダを通じてSMSアプリケーションプロバイダにSMSメッセージを送信して、チェックが行われていると言います... このメッセージを正確に受け取った後、私はデータベースを更新してそれを成功裏に完了する必要があります。 なぜこの時間のちょうど3分後にデバイスがオフになるのでしょうか。 – Mayu

答えて

5

どのように正確にあなたがSMSメッセージを受信して​​います。どのようなサービスがそれらを拾うのですか?

あなたができる方法はいくつかあります。

SMSReceivedイベントのアプリケーションコードでは、別のスレッドを180秒間スリープ解除してから、SQLコードを呼び出すことができます。

データベースで実行したい場合は、何らかのポーリングスレッドが必要です。

記録「TimeReceived」と

は次に、あなただけの

SELECT * 
FROM ReceivedSMS 
WHERE TimeRecieved < dateadd(second, -180, getdatE()) AND 
     PostProcessed = 0 

FOREACH Record - Execute SPROC & Update PostProcessed = 1. 
0

すぐにストアドプロシージャを実行しますが、最初のT-SQL行はWAITFOR DELAY '00:03:00'ですか?

関連する問題