【Laravel】コマンドでAPIを並列実行する方法を解説!
当ページのリンクには広告が含まれています。

この記事で解決できる悩み

こんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴10年)で、資格は13個保有しています。
「LaravelのコマンドでAPIを並列実行する方法を知りたい」とお考えではありませんか?
結論からお伝えすると、APIを並列実行するのは超簡単です。



めっさ簡単なのでサクッと解説します。
ということで、本記事ではLaravelのコマンドでAPIを並列実行する方法を解説します。





すぐ読み終わるので、ぜひ最後まで読んでくださいませ。
目次
【Laravel】コマンドでAPIを並列実行する方法
早速ですが、LaravelのコマンドでAPIを並列実行する方法を解説します。
<?php
namespace App\Console\Commands\Dev;
use GuzzleHttp\Client;
use GuzzleHttp\Promise;
use GuzzleHttp\RequestOptions;
use Illuminate\Console\Command;
class Command extends Command
{
protected $signature = 'parallel-exec {count : 並列実行数}';
protected $description = '並列実行コマンド';
private const URL = 'https://sample.com/api';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$count = (int) $this->argument('count');
if (! $this->confirm("{$count}件並列実行します。\nよろしいですか?")) {
return 1;
}
$this->info('開始');
$client = new Client;
$promises = [];
try {
for ($i = 0; $i < $count; $i++) {
$promises["req_{$i}"] = $client->postAsync(self::URL, [
RequestOptions::JSON => [
'id' => 1,
],
]);
}
$this->info("{$count}件のリクエストを並列で実行中...");
Promise\Utils::settle($promises)->wait();
$this->info('終了');
return 0;
} catch (\Exception $e) {
$this->error('並列実行処理中にエラーが発生しました。');
return 1;
}
}
}
上記のようにすればAPIを並列で実行できます。
ちなみに、今回はGuzzle
を使っています。



Laravelのバージョンは9です。
まとめ
今回は、LaravelのコマンドでAPIを並列実行する方法について解説しました。
以下が本記事のまとめになります。
- おすすめ本
Laravelの勉強なら「PHPフレームワーク Laravel入門 第2版



最後までお読みいただき、ありがとうございました!
- クソおすすめ本



海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。
- 他サイトも見てね