3

Azure 管理コンソールでスケジュールを構成しようとすると、絶対終了日時 (または終了しない) と間隔を指定してスケジュールを設定するオプションしか与えられません。

ここに画像の説明を入力

したがって、この UI から、毎日午前 8 時から午後 6 時までのみ30 分ごとにジョブをスケジュールすることはできません (つまり、午後 6 時 1 分から午前 7 時 59 分までは実行しないでください)。以前に使用した Windows タスク マネージャーと他のすべてのスケジューラ (cron、Quartz) は、希望する動作をサポートしています。

API やポータル HTTP/JSON インターフェイスのハック的な使用など、Azure でスケジュールのタイプはまったくサポートされていますか? スケジュールを一度「ハッキング」しても構いません。スケジュールを実際のジョブ スクリプト/アプリケーションに埋め込むよりも優れています。

4

2 に答える 2

0

これは、Web ジョブに実装する必要があるものです。複雑なスケジュールを持つ Web ジョブがあるという点で、同様の問題があります。幸いなことに、実装は難しくありません。

このスニピットは、Azure のすべてが設定されている UTC から現地時間 (私が知る限り東部時間) を取得します。次に、それが土曜日か日曜日か、および終了かどうかをチェックします (これが必要かどうかは不明です)。次に、午前 8 時前か午後 6 時以降かをチェックし、退出するかどうかをチェックします。これらの両方の条件に合格すると、WebJob が実行されます。

        //Get current time, adjust 4 hours to convert UTC to Eastern Time
        DateTime dt = DateTime.Now.AddHours(-4);

        //This job should only run Monday - Friday from 8am to 6pm Eastern Time.
        if (dt.DayOfWeek == DayOfWeek.Saturday || dt.DayOfWeek == DayOfWeek.Sunday) return;
        if (dt.Hour < 8 || dt.Hour > 16) return;

        //Go run WebJob

お役に立てれば。

于 2015-07-31T22:23:22.910 に答える