BackEnd

Laravelのバッチ処理を作る

投稿日:

はじめに

こんにちは。webアプリにつきもののバッチ処理ですが、もちろんLaravelでもサポートされていて、crontabに書き散らすことなくバッチを設定できます。
今回はLaravelでコンソールやcronから処理を呼び出し、バッチとして実行する方法を紹介します。

環境

  • PHP 7.3.3
  • Laravel 5.8.21

artisanコマンド作成

以下のコマンドで、Artisanコマンドを自作します。ここで作成するコマンドは php artisan でCUIから実行できますし、今回のテーマであるバッチ処理でも呼び出すことができます。

これで app/Console/CommandsTestBatch.php が作成されます。

これでもうartisanコマンドから呼び出せるようになっています。確認してみましょう。

このように表示されればOKです。 php artisan batch:test をコンソールから実行することで、先ほどの TestBatch クラスの handle メソッドが呼び出されます。

artisanコマンドをバッチとして登録する

コンソールからartisanコマンドとして呼び出せるようになりました。同じ要領でartisanコマンドを必要なだけ作り、全てcrontabに登録してもよいのですが、バッチが増えるほど煩雑になり、管理しづらくなります。
Laravel内に全てのコマンドを登録し、見通しよく管理できるようにしましょう。 app/Console/Kernel.php を編集します。

上記の sendOutputTohourly 以外にも様々な制御が可能です。公式ドキュメントで網羅されていますので、是非見てみてください。
あとはcrontabに1行追加するだけで、 Kernel.php に登録したコマンドがそれぞれ実行されるようになります。

これで完了です。
※ 今回初めてAlpine Linuxのcrontabを触りましたが、Redhat系のcrontabと比べてコメントが親切ですね…

さいごに

以前はcrontabをテキストファイルとしてリポジトリに登録したり、もしくはサーバ上のcrontabを直接編集したりすることが私はほとんどでした。こうやってコード上で管理でき、分かりやすく制御できるのは素晴らしいですね。

おすすめ書籍

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応 PHPフレームワーク Laravel入門

blog-page_footer_336




blog-page_footer_336




-BackEnd
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Vue.js+TypeScriptな環境整備

1 はじめに2 vue-cliのインストール3 プロジェクトの作成3.1 機能の選択3.2 シンタックスの選択3.3 CSSプリプロセッサの設定3.4 Unit test3.5 E2E test3.6 ...

rails

Shrineをモデルに関連付けないで使用してハマったこと

1 はじめに2 アップロード時にリサイズする3 アップロード時のバリデーション4 アップロード時に古いファイルを削除する5 さいごに はじめに ShrineはRailsでのアップロードを簡単に行えるよ ...

rails

Ruby、Railsの時間に関するメソッドを使用してみた

はじめに 普段PHPのお仕事をしています、tonnyです。 半年程前からRuby on Railsの勉強を始めました。 今回はよく使う時間に関するメソッドついてまとめたいと思います。 目次 1 はじめ ...

laravel logo

Laravel-debugerbarを使ってみた

1 はじめに2 インストール3 主な項目3.1 Messages3.2 Timeline3.3 Queries3.4 N+1 Queries3.5 Session3.6 Request4 さいごに5 ...

Go言語

Go 1.18のGenericsを使った地味に便利な関数を紹介

1 はじめに2 関数の紹介2.1 解決したいこと2.2 関数の内容3 さいごに4 おすすめ書籍 はじめに 3月15日にリリースされたGo 1.18で、ついにGenericsがサポートされました(Goの ...

フォロー

blog-page_side_responsive

2019年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。