Azure の管理ポータルからスケジューラのジョブを設定する場合には、開始時間を 30 分単位でしか指定できないようになっています。
しかし、REST API 的には 30 分単位といった決まりはなく、秒単位でも指定が可能なんじゃないかという仕様になっています。
REST API を叩いてもいいんですが、あまりにもそれはめんどくさいので Azure PowerShell コマンドレットを使って設定をしてみたいと思います。
一応、MSDN にもリファレンスがあります。
開始時間を指定するには -StartTime を使いますが、引数の型としては DateTime を取るようになっているので、割と自由に設定できるような感じがしますね。
実際に設定をしていきますが、最近は Google Analytics API を使って前日の PV を取得するコードを C# で書いてみた - しばやん雑記 でスケジューラを使って日付が変わった後に実行するようにしているので、こいつのジョブを変更してみます。
# 開始時間の DateTime を作成(めんどくさいから Parse してる) $startTime = [DateTime]::Parse("2014-08-60T15:05:00Z"); # 必須なのは Location / JobCollectionName / JobName Set-AzureSchedulerHttpJob -Location "Japan East" -JobCollectionName shibayan-api -JobName pageview -StartTime $startTime
ロケーション名やらジョブコレクション名とか結構指定しないといけないですが、それ以外のパラメータはは必須ではないので簡単ですね。
実際にこのスクリプトを実行したところ、管理ポータルから確認できる開始時間に反映されています。
実際に 0:05 にツイートされるか確認しましたが、問題なく動いたので分単位での実行も行えるようです。
昨日のしばやん雑記の PV は 2104 でした。
— しばやん (@shibayan) August 6, 2014
秒単位での開始時間設定も出来そうな感じですが、抱かれたい男 No.1 曰くスケジューラ自体に数秒のラグが発生するらしいので、現実的には分単位までかなと思います。