Render.comで定期処理を実行する

公開日: 

経緯

定期的に LINE のメッセージを送信するシステムを作りたいので、Render.com で定期処理を実行してみます。

どのようなサービスを使用するかはたくさんの選択肢がありましたが、最近耳にする『Render.com』を使用してみたかったのでこのサービスを選びました。

https://render.com/

料金とプラン

※ 2024 年 1 月 9 日時点での情報です

https://render.com/pricing

  • 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]ボタンを押すだけで、デプロイ完了。

とても簡単。

以下、実際に運用しているシステムの例

render.yml
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