Railway/Guides
スケジュールジョブを実行する
Railway で cron ジョブ(Scheduled Jobs)を設定し、定期的なタスクを自動実行する方法を解説します。
著者: AIイノベーションズ 阿部隼也(X / Twitter)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 内で完結できます。運用負荷を減らしつつ、ログの一元管理やリトライ設定で信頼性も向上します。ぜひ活用してください!
PR