IT-Q

Laravel で定期実行を組む方法として妥当なのはどれですか。

cron には schedule:run を毎分実行する1行だけを置き、個々の予定はアプリ側で定義します。処理を足すたびに cron を編集せずに済み、定義がリポジトリに残ります。

面接官が見ているのはLaravel スケジューラの仕組みを理解しているか。

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

  • cron には schedule:run を毎分実行する1行だけ登録し、個々の予定はアプリ側に定義する
    定義がリポジトリに入るので、どの環境で何が動くかがコードから分かります。
  • 処理ごとに cron を1行ずつサーバーに登録する
    動きますが、定義がサーバー上にしか残らず引き継ぎで失われます。
  • キューに積めば定期的に実行される
    キューは「一度だけあとで実行」です。定期実行の仕組みではありません。
  • ミドルウェアで時刻を判定して実行する
    リクエストが来ないと動きません。誰もアクセスしない時間帯は実行されません。

面接官は何を見ているか

  • schedule:run を毎分 cron で叩く構成を説明できた
  • cron 登録が1行で済む利点に触れた
  • 実行時間や失敗の扱いを考えていた

模範解答

サーバーの cron には schedule:run を毎分実行する1行だけを登録し、個々のスケジュールはアプリ側のコードで定義します。処理を追加するたびに cron を編集しなくて済み、定義がリポジトリに入るので、どの環境で何が動くかがコードから分かります。失敗時にログを残すか通知を出すかは、処理ごとに決めます。

ここからどう深掘りされるか

この問いに答えられた場合、面談は次の質問に進みます。