私は現在、特定の要件を持つプロジェクトに取り組んでいます。これらの概要は次のとおりです。
- データは外部 Web サービスから取得されます
- データは SQL 2005 に格納されます
- データは Web GUI を介して操作されます
- Web サービスと通信する Windows サービスは、データベース経由を除いて、内部 Web UI と結合していません。
- Web サービスとの通信は、時間ベースである必要があり、Web UI でのユーザーの介入によってトリガーされる必要があります。
Web サービス通信トリガーの現在の (本番前の) モデルは、手動の介入から生成されたトリガー要求を格納するデータベース テーブルを介して行われます。複数のトリガー メカニズムは必要ありませんが、呼び出しの時間に基づいてデータベース テーブルにトリガーを入力できるようにしたいと考えています。私が見ているように、これを達成するには2つの方法があります。
1) トリガー テーブルを調整して、2 つの追加パラメーターを格納します。1つは「これは時間ベースですか、それとも手動で追加されますか?」タイミングの詳細を格納するための null 許容フィールド (正確な形式は未定)。手動で作成されたトリガーの場合は、トリガーが起動されたときに処理済みとしてマークしますが、時限トリガーの場合はマークしません。
または
2) 時間間隔でオンザフライでトリガーを作成する 2 番目の Windows サービスを作成します。
2 番目のオプションは私にはごまかしのように思えますが、オプション 1 の管理は簡単にプログラミングの悪夢に変わる可能性があります (テーブルの最後のポーリングが発生する必要のあるイベントを返したかどうかをどのように確認し、それをどのように停止するか)次のポーリングで再トリガー)
どちらのルート (これら 2 つのうちの 1 つ、または場合によってはリストにない 3 つ目のルート) を選択するかを決定するために、誰かが数分の時間を割いてくれれば幸いです。