Vercel Cron jobs:指定した時間や間隔で、サーバーレス関数を自動的に実行できる機能。
問題:vercel.jsonのマージで"Deployment failed"が発生する
テストのため、1時間おきに実行できるようなテキストを作成し、
ドキュメントで誤りがないかを確認。
vercel.json
{
"crons": [{
"path": "/api/auto-shift/run",
"schedule": "0 * * * *"
}]
}
スケジュールを記述した設定ファイルvercel.jsonを追加する
ブランチをマージしようとすると、Deployment failedとなる。
詳細が表示されないため、原因の特定に時間を要しました。
何が原因だったのでしょうか?
原因:無料プランでは1日2回を超えるような"設定"もできない
> vercel deploy --prod
Error: Hobby accounts are limited to daily cron jobs.
This cron expression (0 * * * *) would run more than once per day.
Upgrade to pro to unlock all Cron Jobs features on Vercel.
無料(Hobby)プランでは1日に2回までしかCronを実行できないことは明示されていますが、
1日2回以上実行する設定 すらできないことは記述がありませんでした。
コマンドにてデプロイを試みたところ、エラー詳細が判明したため解決しましたが、
ドキュメントなどにも詳しい記述がないため、少し厄介な問題です。
解決策はシンプルです。
解決策:1日2回以内の実行へ変更
{
"crons": [{
"path": "/api/auto-shift/run",
"schedule": "0 1 * * *"
}]
}
実行回数を1日2回以内になるように設定することで、
デプロイを行うことができます。
参考
Cron jobsについて
プランごとの制限について