2016-12-06 17 views
0

MSSQLデータベースにアクセスするためにHttpHandlerを使用してRESTful Webサービスを構築しました。ユーザアクションによってトリガされるメソッド呼び出しをスケジュールする必要があります。週17PMで、通知を送信する方法がその時点で解雇されます。 System.Threading.Timerを使用して次のコードを試しましたが、機能しませんでした。ASP.NETでビルドされたWebサービスでメソッド呼び出しをスケジュールする方法

ServiceAPI s = new ServiceAPI(); 
//s.CreatePreferences(true, true, true, 3); 
TimeSpan alertTime = new TimeSpan(17, 30, 00); 
DateTime current = DateTime.Now; 
TimeSpan timeToGo = new TimeSpan(00, 01, 00);//alertTime - current.TimeOfDay; 
if(timeToGo < TimeSpan.Zero) 
{ 
     return; // time already passed 
} 
System.Threading.Timer timer = new System.Threading.Timer(x => 
{ 
     s.SendNotification(true, true, true, 10); 
}, null, timeToGo, System.Threading.Timeout.InfiniteTimeSpan); 

P.S.私のWebサービスはIISサーバーでホストされています。

答えて

0

Webサービスプロジェクトからはできません。あらかじめ定義されたスケジュールに基づいてWebサービスメソッドを呼び出すクライアントが必要です.Windows Azureを使用していますか? (もしそうならスケジューラ機能がある:https://azure.microsoft.com/ro-ro/services/scheduler/)。

+0

残念ながら、それはsomeeという無料のホスティングサービスでホストされています。クライアント側からそれをトリガーする以外の方法はありませんか?私のクライアントサイドのプラットフォームはAndroidで、私は定期的な通知のためにGoogleのFirebase Cloud Messagingを使用していますが、スケジュールされたイベントの場合はプッシュ通知をプログラムする必要があるため、サーバー側からトリガーする必要があります? – AymanKun

関連する問題