2017-08-07 10 views
-1

Azureデータベースのテーブルを無条件で5分ごとにチェックする方法が必要なので、何も関係なく5分ごとに実行されるスケジュールされたタスクです。コンソールアプリケーション、Windowsサービス、またはWebサービスをAzure SQLデータベースから5分ごとに読み取りますか?

私はこれに使用するのに最適なアプリケーションテンプレートは何かわかりません。コンソールアプリケーション、Windowsサービス、Webサービスなどから選択しています。

私は、どちらがより良い仕事をし、スケジュール設定が容易になるか教えてください。

+0

それはちょうど、タスクごとに5分を実行する必要がある、またはそれがチェックした後、特定のエンドポイントを持っていますか? – raichiks

+0

これはAzure SQLでも(テストされていない) - https://github.com/christiandelbianco/monitor-table-change-with-sqltabledependencyでも動作するはずです。これは、データベースを盲目的に突っ走るよりはるかに優れたアプローチです。 Azure関数またはWebJobで作業を行います。 – evilSnobu

+0

実際にはAzureキューを5分ごとにチェックし続けます。トリガーや停止条件がない場合は、5分ごとにキューをチェックし、新しいメッセージがある場合は別の方法を呼び出す必要があります。 – GeekGirl

答えて

1

最高のものはConsoleApplicationです。

コンピュータから実行する場合は、実行してください。 Azureで実行する場合は、Azure Web Jobsを使用します。

enter image description here

AppServiceページにこのブレードを選択し、指示に従った後、アズールにAppServieを作成します。これらのWebジョブはAzureから通常のConsoleApplicationsを実行できます。アプリケーションは彼らが望むものを何でもすることができます。

+0

"Release"モードでプロジェクトをビルドすればいいですか?このexeファイルを実行するには、.exeファイルをどこかにコピーし、タスクまたはAzure WebJobをスケジュールしますか? – GeekGirl

+0

リリースまたはデバッグ、これは問題ではありません。アズールはそれが何であるか分からない。 exeファイルやdll、app.configなどのその他のものは、展開プロセスの一環として選択されます。 –

2

クラウドで何かを実行する場合は、Azure Logic Appの使用を検討してください。おそらく、データベースをチェックしてから、クエリの結果に基づいて何らかのアクションを取ることをお勧めします。 Logic Appsでは、デザイナを使用してワークフローを実装できます。さまざまなコネクタが既に用意されているので、最小のコーディングが必要です。さらに、アプリの実行中の計算時間にのみ課金されます。 実行するいくつかの拡張ロジックがある場合は、Azure関数を記述し、ロジックアプリケーションから呼び出すことを検討できます。

キューが定期的にチェックされ、メッセージが存在する場合は何らかのアクションを実行するとします。あなたは、新しいメッセージがキューに到着するたびにトリガされた2つのオプション

  1. Azure functionを持っています。 5分ごとにキューを継続的にポーリングしてメッセージをチェックするのではなく、メッセージがキューに到着するたびにAzureによって関数が呼び出される方が安くて簡単です。 QueueTrigger

  2. Logic Appワークフローについて説明しています。ここでは、ポーリングするキューを簡単に構成し、メッセージのチェックを実行し、既存のコネクタを使用して条件が満たされるたびにSQLテーブルに簡単にアクセスできます。

Logic App

+0

これらのオプションは非常に興味深いですが、WebJobを使用してそれらを使用する利点は何ですか? また、新しいメッセージがキューに追加されるたびに、Azure SQLデータベースの値をチェックするために6分ごとに2分ごとに実行する別のスレッドを開始する必要があります。このシナリオでは、どのアプリケーションタイプが最適でしょうか? – GeekGirl

関連する問題