Render.comで定期処理を実行する
公開日:
経緯
定期的に LINE のメッセージを送信するシステムを作りたいので、Render.com で定期処理を実行してみます。
どのようなサービスを使用するかはたくさんの選択肢がありましたが、最近耳にする『Render.com』を使用してみたかったのでこのサービスを選びました。
料金とプラン
※ 2024 年 1 月 9 日時点での情報です
- Individual
- Team
- Organization
- Enterprise
の 4 種類のプランがあります。
料金的には Individual のみが月々無料で、それ以外は月額が発生するよう。
今回使用したいのはCron Jobなのでそこの料金を見ていく。
https://render.com/pricing#cronjobs
- job 実行のために立ち上がっていたインスタンスに毎分の料金
がかかってくるようです。ただし、cron job につき$1 が最低金額らしい。
安いのか高いのかはよくわからんけど、そこまで高くはなさそうなのでとりあえず使ってみようぜ
使ってみる
実際のリポジトリ
https://github.com/yukendev/shin.jing.rui-bot
ドキュメント
https://docs.render.com/blueprint-spec
Render.com にはBlueprint
という機能があり、プロジェクトのルートディレクトリにrender.yaml
ファイルを作成し、ダッシュボードの[Blueprints] ⇒ [New Blueprint Instance]から
デプロイしたいリポジトリを選択して、[Connect]ボタンを押す。
リポジトリルートのrender.yaml
の記述が正しいと、[Create New Resources]ボタンを押すだけで、デプロイ完了。
とても簡単。
以下、実際に運用しているシステムの例
services:
# 日本時間の毎週土曜日の午前9時30分に実行
- type: cron
name: saturday job
runtime: node
schedule: "30 0 * * 6"
buildCommand: pnpm install && pnpm run build
startCommand: pnpm run job:saturday
region: singapore
# 日本時間の毎週月曜日の午前9時30分に実行
- type: cron
name: monday job
runtime: node
schedule: "30 0 * * 1"
buildCommand: pnpm install && pnpm run build
startCommand: pnpm run job:monday
region: singapore
# 日本時間の毎月1日の午後12時に実行
- type: cron
name: monthly job
runtime: node
schedule: "0 3 1 * *"
buildCommand: pnpm install && pnpm run build
startCommand: pnpm run job:monthly
region: singapore
これで定期的に処理が実行されます。かなり楽ちんですね。
https://docs.render.com/cronjobs#setup
ただ、タイムゾーンは意地でも UTC になるらしいので、そこだけ要注意。
最後に
なんか UI もとてもいい感じで、触っていて楽しいサービスですね。
では
Bye