私はこれをSDKエクステンションクラスTimerSchedule
で行うことができます。
このため、複数のトリガーに使用できる基本クラスが必要です。あなたのタイマーを生成する
class CustomTimerTriggerBase: TimerSchedule
{
TimeSpan timer;
public CustomTimerTriggerBase(string triggerConfigKey)
{
timer=TimeSpan.Parse(ConfigurationManager.AppSettings[triggerConfigKey]);
}
public override DateTime GetNextOccurrence(DateTime now)
{
return now.Add(timer);
}
}
使用このベース...あなたのApp.configファイルで
public sealed class FooTimer : CustomTimerTriggerBase
{
public FooTimer() : base("FooTimerKey") {}
}
は "FooTimer"
<add key="FooTimerKey" value="00:02:00" />
使用あなたのwebjobでこのFooTimerクラスのためのキーを持っています機能。
public void foo([TimerTrigger(typeof(FooTimer)] TimerInfo timer)
コードを再デプロイする代わりに、単にapp configの値を変更するだけで済みます。 注:Timespanを解析するために、この文字列はTimeSpan形式で定義されているような任意の形式にすることができます。
お返事ありがとうございます。私はちょうど毎週または毎日のスケジューリングの代わりに、より設定可能な方法を探していました。私は組み込みAzure SDKの 'TimerSchedule'拡張でそれを行う方法を考え出しました。これは基本的に 'WeeklyScedule'と' DailySchedule'と同じで、よりコントロールできます。 –