リクエストを受け取って返信するデータベースを実装しています。Approved
またはDenied
、特定のリクエストが3日以内に応答しなかった場合に、として自動返信されるように機能を追加したいと考えていDenied
ます。データベースのステータスフィールド。
asp.net3.5でlinqを使用してSQLServer2008を使用しています。各読み込み時間を確認する以外の方法はありますか?
3 に答える
一定期間後にSQLServerのレコードを変更する必要がある場合は、SQLServerエージェントを使用してください。いつでも実行できるジョブを設定できます。また、ストアドプロシージャのようなものを実行して、必要な内容を確認し、一致するレコードを更新することができます。これは、ジョブを設定する方法に関するチュートリアルです。
http://databases.about.com/od/sqlserver/ss/sql_server_agent_3.htm
まず第一に:私の答えは@AnandPhadkeのものと似ていますが、わずかな違いがあります。
私は何度かこの問題を抱えています。
1)私は通常、この種のタスクのために「ロボット」を構築します。
「ロボット」とは、データベースをチェックし、データベースの結果に応じて必要なアクションを実行するだけの、非常に単純なコンソールアプリケーションを意味します。このコンソールアプリケーションは、そのアクティビティをログに記録することもできます(デバッグなどの目的で、たとえば、このタスクにオープンソースのlog4netを使用できます)。
2)次に、標準のWindowsの「タスクスケジューラ」にコンソールアプリケーションを定期的に呼び出させます。
「タスクスケジューラ」の詳細については、次のとおりです。http ://windows.microsoft.com/en-US/windows7/schedule-a-task
編集/更新:
これは私が説明しようとしているプリンシパルです
CPUの負荷に影響を与える可能性のあるものがいくつかあります。最初は計算集約型の操作。DB設計がどのように見えるかはまったくわかりませんが、SQLクエリが複雑になるほど(そしてこの複雑なクエリを処理する必要のあるデータが増えるほど)、CPUからより多くの電力が必要になることは確かです。クエリを最適化してみてください。
私が提案するのは、
与えられた時間間隔ごとにデータベースをチェックして操作を実行するWindowsサービスを作成します。このWindowsサービスを常に実行し続けるだけです。時間間隔ごとにジョブを実行します。