Category: Laravel

bulk insertで大量のデータをDBに登録する

毎日走らせているcronのジョブの1つが、なかなか時間が掛かるのでどうにか改善できないかと悩んでいました。DBへデータを挿入する箇所で時間が掛かっており、コードを確認するとforループで1レコードずつinsert処理を行っていました。bulk insertするように改修したところ、劇的に処理時間が短くなりました。今回はそんな妙薬、bulk insertについてです。

Laravelでログファイルの作成(3)コマンドログファイル自動ネーミング

Artisanコマンドはコマンドラインで手動で実行するだけでなく、クロンジョブでの実行でも使用します。時間を設定して自動的に実行されるゆえに、実際に実行されたのか、どれだけ時間かかったのか、いくつのレコードを処理したのかなどをログに記録しておきたいです。そして、わかりやすいようにコマンドごとに違うログファイルを作成したいです。となると、config/logging.phpでそれぞれのコマンドのチャンネルを作成することになるのでしょうか? つまり50個コマンドあれば50個のチャンネルの作成です。それは面倒だな、ということで良いアイデアを思いつきました。

LaravelでLogファイルの作成(1)laravel.logでないファイルに記録

ログファイルを作成するのは、デバッグのためや後のチェックに使われるために実行の記録を残すなど、いろいろな目的で使われます。Laravelでは、laravel.logというファイルがデフォルトでstorage/logsに作成されて、そこでいろいろな情報を記録するのに使われます。しかし、特定のプログラムの実行でlaravel.logではないファイルにログを残したいときはどうしましょう?