バックグラウンド タスクを実行する Web ジョブを含む Azure Web アプリがあります。これらのタスクは、スケジュールに従って (6 時間ごとに) 実行する必要があります。WebJob を使用すると、目標を達成するのは非常に簡単でした。ただし、最近、Web アプリの代わりに Web ロールを使用することにしました。バックグラウンド タスクを実行するために、Web ジョブの代わりにワーカー ロールを使用することを検討してきました。ただし、タスクのスケジュール設定で問題に直面しています。
worker ロールでタスクをスケジュールするにはどうすればよいですか? さらに、Cloud Service の複数のインスタンスを使用しているため、worker ロールの 1 つのインスタンスのみが特定の時点でタスクを実行するようにするために、特別な予防措置を講じる必要がありますか?
質問する
271 次
1 に答える
2
Worker ロールでAzure WebJobs SDKを使用して、タスクをスケジュールできます。SDK には、スケジュールに従って関数を実行できるTimerTrigger拡張機能 (詳細はこちら) が含まれています。たとえば、単純に関数を書くことができます:
// Runs once every 6 hours
public static void TimerJob([TimerTrigger("06:00:00")] TimerInfo timer)
{
Console.WriteLine("Timer job fired!");
}
起動コードは次のようになります。
JobHostConfiguration config = new JobHostConfiguration();
config.UseTimers();
JobHost host = new JobHost(config);
host.RunAndBlock();
于 2015-12-09T15:27:04.400 に答える