【Railway】スケジュールジョブを実行する
Railway で cron ジョブ(Scheduled Jobs)を設定し、定期的なタスクを自動実行する方法を解説します。
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)
Cron ジョブを設定する
Railway では Scheduled Jobs 機能を使って、分単位・時間単位・日次などのスケジュールで任意のコマンドを実行できます。バックアップ、バッチ処理、メール送信などに最適です。
1. ジョブの作成手順
- プロジェクト Canvas で Create → Cron Job を選択
- Name と Schedule を入力
- Command に実行したいシェルコマンドを記述
- 環境変数が必要な場合は Variables タブで追加
- Create を押して作成完了
スケジュールの書式
- 標準的な CRON 式 (
*/5 * * * *) に対応 @hourly,@dailyなどのエイリアスもサポート
| 例 | 説明 |
|---|---|
0 0 * * * |
毎日 00:00 に実行 |
*/10 * * * * |
10 分おき |
@weekly |
毎週日曜 00:00 |
2. ログと結果確認
- Logs タブで出力をリアルタイム確認
- ジョブが失敗するとステータスが Failed になり、リトライ設定(デフォルト 3 回)後も失敗すると通知が送信されます
3. よくある質問
| 質問 | 回答 |
|---|---|
| 同時実行は? | 同じジョブがまだ実行中の場合、新しい実行はスキップ (at-most-once) |
| タイムゾーン | UTC で解釈される。ローカル時間で動かす場合は CRON 式を調整 |
| 最大実行時間 | 60 分 (Pro プランは 6 時間) を超えると強制終了 |
4. ベストプラクティス
- コマンドの先頭で
set -euo pipefailを付けてエラー検知を厳密化 - 実行時間が長い処理はワーカーサービスに分割し、Cron ではキックのみ行う
- 重要ジョブは Slack / Discord Webhook で通知を設定
まとめ
Scheduled Jobs を活用すると、従来サーバーや外部サービスで管理していた cron を Railway 内で完結できます。運用負荷を減らしつつ、ログの一元管理やリトライ設定で信頼性も向上します。ぜひ活用してください!
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)