IT-Q

cron に直接コマンドを書くのと、Laravel スケジューラを使うのは何が違いますか。

cron に直接書くと定義がサーバー上にしか無く、リポジトリを見ても何が動いているか分かりません。引き継ぎで失われる情報です。スケジューラなら定義がコードに入りレビューできます。

面接官が見ているのは使う理由の補強。

これは「Laravel で定期実行を組む方法として妥当なのはどれですか。」への追撃質問です。

よくある答えと、面談でどう見られるか

  • 定義がコードに入るのでレビューでき、サーバーには1行登録するだけで済む
    その通りです。環境ごとの条件分岐もコードで書けます。
  • Laravel スケジューラの方が実行精度が高い
    内部的には cron に依存しているので、精度は変わりません。
  • cron を使わずに動作する
    cron から schedule:run を毎分叩く必要があります。
  • 秒単位の実行ができる
    毎分起動が前提なので、基本は分単位です。細かい制御には別の仕組みが要ります。

面接官は何を見ているか

  • 定義がコード管理される点を挙げた
  • サーバー側の設定変更が不要になる点に触れた
  • 環境ごとの差異を吸収できる点に触れた

模範解答

cron に直接書くと、定義がサーバー上にしか無く、リポジトリを見ても何が動いているか分かりません。引き継ぎで失われやすい情報です。スケジューラなら定義がコードに入るのでレビューもでき、環境ごとの条件分岐も書けます。サーバーに登録するのは schedule:run の1行だけで済みます。