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入門

page_footer_responsive




-BackEnd
-,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Go言語

Go言語、ゴルーチン(goroutine)で並列処理を

1 はじめに2 ゴルーチン2.1 go文2.2 ゴルーチンの終了条件2.3 WaitGroup3 チャネル3.1 チャネルの型3.2 チャネルの生成3.3 チャネルの送受信3.4 チャネルとゴルーチン ...

laravel logo

LaravelでHTTP通信

1 はじめに2 インストール3 基本的な使い方3.1 GETでリクエストを投げる3.2 リクエストヘッダーを指定3.3 クエリパラメータを指定3.4 timeout時間を指定3.5 POSTでリクエス ...

laravel logo

[Laravel]データベースの暗号化について考えてみる

1 はじめに2 環境3 Laravelでの暗号化4 暗号化されたカラムは、そのままではLIKE検索ができない4.1 問題点4.2 解決案1:全件取得してPHP側でがんばって検索する4.3 解決案2:暗 ...

php logo

PHP入門 〜文字列と数値の操作〜

1 はじめに2 基本ルール2.1 開始と終了のタグ2.2 ホワイトスペース2.3 大文字と小文字の区別2.4 コメント2.5 変数の定義3 文字列の操作3.1 文字列の定義3.2 無駄なスペースを削除 ...

GraphQL

いまさら学ぶGraphQL〜概要編〜

1 はじめに2 GraphQLとは?2.1 なぜGraphQLは誕生した?2.1.1 過剰な取得2.1.2 過少な取得2.1.3 エンドポイントの管理3 GraphQLのメリットとデメリット3.1 G ...

フォロー

blog-page_side_responsive

2019年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

アプリ情報

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