Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

CloudFunctionの定期実行と定時実行

$
0
0

はじめに

当記事ではCloudFunctionの定期実行及び定時実行について紹介していきたいと思います。導入やデプロイについては、こちらの記事をご覧ください。

CloudFunctionとは?

サーバーレスフレームワークで、Firebase の機能と HTTPS リクエストによってトリガーされたイベントに応じて、バックエンド コードを自動的に実行できます(公式より)

定期実行

こちらのコードでは例えば3分ごと、1時間ごとなど指定した時間ごとに関数を実行する処理となります。

index.js
exports.scheduledFunction=functions.pubsub.schedule('every 5 minutes').onRun((context)=>{console.log('5分ごとに実行してるよ!');returnnull;});

上記のコード内で、.schedule('every 5 minutes')となっている部分の内部を変更することによって、実行する間隔を指定することが出来ます。
即ち、一時間ごとならば、.schedule('every 1 hours')
一日ごとならば、.schedule('every 1 days')
一週間ごとならば、.schedule('every 1 weeks')
(以下省略・・・)となります。

定時実行

こちらのコードではタイムゾーンを指定した上で、関数を実行したい時間を具体的に指定することが出来ます。

index.js
exports.scheduledFunctionCrontab=functions.pubsub.schedule('5 11 * * *').timeZone('America/New_York')// 必ずタイムゾーンを指定します。.onRun((context)=>{console.log('毎日、ニューヨークが午前11:05になった時に実行するよ!');returnnull;});

タイムゾーンに関しては、tz databaseに準じた記法になります。もちろん上記のコードのようにニューヨークを指定して、時差を計算して実装しても良いのですが、サマータイムなど色々な事情を考慮すると、素直にサービスを展開したい土地のtimezoneを調べて記載した方が良いかと思います。
ちなみに日本時間はAsia/Tokyoとなります。

おわりに

以上の定期実行や定時実行を行うことで、例えば毎日同じ時間にFirestore内のデータを更新したり、CloudMessagingを呼び出してユーザーに通知を行うなどの処理が出来ます。
非常に便利な機能なので、是非是非導入を検討してみてください!!

それでは、また😊

★こちらの記事を参考にしました
公式ドキュメント


Viewing all articles
Browse latest Browse all 8691

Trending Articles