4

WindowsAzureアプリケーションにジョブスケジューラを実装したいと思います。

私の目的は、特定のアプリケーションを毎日特定の時間に実行することです。その実装のために私はいくつかの選択肢があります

1-Quartz.netを使用する

2-Windowsスケジューラ

それを実装するためにC#.netで利用可能な組み込みメソッドがある場合。私はWindowsAzureHPCスケジューラについて苦労しています。スケジューラーですか?

4

4 に答える 4

6

最近、ジョブスケジューラ機能がWindows Azureに追加され、特定の間隔でジョブを簡単にスケジュールできるようになりました。

ここに画像の説明を入力してください

これらのジョブを使用してWebサイト、Webロール、さらにはワーカーロールと通信する方法を説明するブログ投稿は次のとおりです。http://fabriccontroller.net/blog/posts/job-scheduling-in-windows-azure/

于 2012-12-28T10:12:36.167 に答える
4

Windows Azureでスケジューリングを行うときは、覚えておく必要のあることがあります。Web /ワーカーロールのインスタンスを複数持つことができます。つまり、スケジュールされたタスクが複数回実行される可能性があることを考慮する必要がありますが、それは望ましくない場合があります。

ServiceBusQueuesを使用してスケジューリングシステムを作成することを検討してください。BrokeredMessageクラスには、 ScheduledEnqueueTimeUtcと呼ばれる興味深いプロパティがあり、メッセージをキューに入れる(利用可能にする)タイミングをスケジュールできます。これにより、たとえば1時間ごとに表示されるメッセージでキューを埋めることができます。

http://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.scheduledenqueuetimeutc.aspx

また、Service Bus Queuesを使用してこのような実装を構築する場合は、メッセージを最大1回(ReceiveAndDelete)または少なくとも1回(PeekLock)処理することを決定できます。

于 2012-06-14T08:28:53.780 に答える
2

スケジューリングはこれまで何度も回答されてきましたが(これが重複していると私が提案した理由です)、対処されていないいくつかの具体的な質問をしたことに気付きました。

  • HPCスケジューラーはHPCワークロード用であり、一般的なタスクスケジューラーとしての目的には適していません。
  • c#を介した特定のタスクスケジューラはありません=タスクスケジューラを作成するか、quartzなどのライブラリを使用する必要があります。
  • Webとワーカーの役割は基本的にWindows2008ServerVMであることに注意してください。Windows Serverでできることは何でも、WindowsAzureVMでもほぼ同じことができます。

スケジューラーの作成に関する詳細を提供する回答を提供しているので、私が参照した他の回答を見てください。

于 2012-06-14T07:54:34.920 に答える
0

ScheduledEnqueueTimeUtcプロパティを使用してメッセージのキューイングを遅らせる場合、キューに送信される前にメッセージがどこにストックされているのか疑問に思いましたか?Web / Workerロールのインスタンスが2つある場合、どうなるでしょうか。

  • メッセージを作成し、インスタンスの1つがそれを一種のキャッシュに保存しますか?それとも、それをキャッシュするのは両方のインスタンスですか?

2つのシナリオ:1。-InstanceAはメッセージをキャッシュに保存し、キューに配信されるのを待機します-InstanceAは何らかの理由で失敗します。-メッセージは永久に失われます。

    • 両方のインスタンスがそれをストックします。
    • インスタンスAとBが有効になります。メッセージはキューで2回配信されます。

どちらの場合も、解決策は信頼できないようです。

于 2013-10-17T09:12:04.257 に答える