LoginSignup
8
5

More than 3 years have passed since last update.

Cloud FunctionsをCrontabで定期実行する方法

Posted at

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の代わりに指定したい時刻を記述すれば大丈夫です。

参考

Firebase - 関数のスケジュール設定
crontabコマンドについてまとめました 【Linuxコマンド集】

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5