cron に直接コマンドを書くのと、Laravel スケジューラを使うのは何が違いますか。
cron に直接書くと定義がサーバー上にしか無く、リポジトリを見ても何が動いているか分かりません。引き継ぎで失われる情報です。スケジューラなら定義がコードに入りレビューできます。
面接官が見ているのは使う理由の補強。
これは「Laravel で定期実行を組む方法として妥当なのはどれですか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- 定義がコードに入るのでレビューでき、サーバーには1行登録するだけで済む
その通りです。環境ごとの条件分岐もコードで書けます。 - Laravel スケジューラの方が実行精度が高い
内部的には cron に依存しているので、精度は変わりません。 - cron を使わずに動作する
cron から schedule:run を毎分叩く必要があります。 - 秒単位の実行ができる
毎分起動が前提なので、基本は分単位です。細かい制御には別の仕組みが要ります。
面接官は何を見ているか
- 定義がコード管理される点を挙げた
- サーバー側の設定変更が不要になる点に触れた
- 環境ごとの差異を吸収できる点に触れた
模範解答
cron に直接書くと、定義がサーバー上にしか無く、リポジトリを見ても何が動いているか分かりません。引き継ぎで失われやすい情報です。スケジューラなら定義がコードに入るのでレビューもでき、環境ごとの条件分岐も書けます。サーバーに登録するのは schedule:run の1行だけで済みます。