Cloud Functionsを定期実行したい
5分おきや1時間おき、1日おきなどでCloud Functionsの関数を実行したい場合は、functions.pubsub.schedule().onRun()
を使用して実行します。
FirebaseのプランをBlazeに変更しないと使用することができないので注意しましょう。
書き方
5分おきに関数を実行したい場合は、下記のように記述します。タイムゾーンは指定しなければロサンゼルスの時刻が使用されます。
exports.scheduledFunctionCrontab = functions.pubsub.schedule('*/5 * * * *')
.timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
.onRun((context) => {
console.log('This will be run every day at 11:05 AM Eastern!');
});
頻度の指定方法
functions.pubsub.schedule('* * * * *')
のような書き方は、Crontabの構文で頻度を指定する方法です。
1つ1つのアスタリスクは、左から「分」「時」「日」「月」「曜日」となっています。
1時間おきに実行したい
1時間おきに実行したい場合は、毎時0分に実行すればOKです。書き方は下記のようになります。
functions.pubsub.schedule('0 * * * *')
3時間おきに実行したい
3時間おきに実行したい場合は、下記のように記述します。
functions.pubsub.schedule('0 */3 * * *')
1日おきに実行したい
1日おきに実行したい場合は、下記のように記述します。
functions.pubsub.schedule('0 0 * * *')
上記の書き方だと、毎日0:00に実行されます。時刻をずらしたい場合は、0の代わりに指定したい時刻を記述すれば大丈夫です。