0

スケジュールされたイベントが曜日と時間ごとに保存される既存のデータ構造を使用することを余儀なくされています。

SQL Server 2008 と ASP.NET コンソール アプリケーションを (一時的に) トリガーに使用しています。

トリガー時間は、ブール値としてデータベースに保存されます。

例:

SendMonday            bit   Unchecked
SendTuesday           bit   Unchecked
SendWednesday         bit   Unchecked
...
=====================================    
Send0000              bit   Unchecked
Send0100              bit   Unchecked
Send0200              bit   Unchecked
Send0300              bit   Unchecked
...

特定の時間にイベントをトリガーするために、理論とプログラミングの両方の観点から最善のアプローチは何でしょうか?

私のアプローチでは、「LastProcessed」の日付をデータベースに保存し、多くの手作業を行いましたが、より良いアプローチがあるかどうか疑問に思いました。

4

2 に答える 2

2

SQL Server エージェントを使用して、スケジュールされたタスクを 1 時間ごとに実行し、呼び出す必要のあるイベントをチェックします。

于 2012-09-11T09:49:33.660 に答える
0

バックエンドにストアドプロシージャがあるスケジュールされたタスクのジョブのように聞こえます。スケジュールされたジョブはストアドプロシージャを実行する必要があります。sprocは呼び出し時刻とともにテーブルを調べ、実行する必要があるかどうか、何を実行する必要があるかを決定します。必要に応じて、外部プログラムをストアドプロシージャに接続できます。

または、sprocおよびsqlサーバーエージェントに依存したくない場合は、コンソールアプリケーションにすべてのロジックを記述し、Windowsタスクスケジューラからアプリを実行できます。そのため、アプリはスケジューリングテーブルからデータを取得し、実行するかどうか、実行するかどうかを決定し、必要に応じて続行します。

私の好みは2番目のアプローチです-維持するのは簡単ですが、それは本当にあなたの要件と環境に依存します。

于 2012-09-11T10:02:33.047 に答える