ピックアップ
Laravelのworkerに関してJob作成して試した件の個人的なメモ。

Laravelで、
queueを使っていたが、
使い方のみ調べて、
設定して運用していたので、
色々と自分なりの整理や、
より理解できるように試したり、
聞いたりしながら、
自分なりのメモを残してる。
LaravelのWorker / Queueに関してのメモ
色々と、
WorkerやQueueについて、
試しながら、
調べたことで理解した部分や、
個人的になるほどとか、
気になった点のメモは、
こちらの方にもメモしてる。
Laravelのqueueについてのデフォルト設定と基本についての個人的メモ。
Laravelのqueueのドライバーの基本についての個人的メモ。
Job作成
LaravelにJob作成
php artisan make:job TestJob<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class TestJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function handle()
{
Log::info("TestJob executed at " . now());
sleep(10);
}
}
Jobを実行する
Route::get('/test-sync', function () {
dispatch(new \App\Jobs\TestJob());
return 'Job dispatched!';
});を準備して、
curl http://localhost:8000/test-sync
curl http://localhost:8000/test-sync
curl http://localhost:8000/test-sync
curl http://localhost:8000/test-sync呼び出して
キューに追加。
Redisを確認
こちら、
Redisを導入した環境で、
redis-cliでクライアントに入って、
ZRANGE laravel_horizon:pending_jobs 0 -1を確認すると、
127.0.0.1:6379> ZRANGE laravel_horizon:pending_jobs 0 -1
1) "66650e15-0c04-4f0e-ac72-76c1926018e2"
2) "10f23faa-362f-463e-ba55-97fa5557e04e"
3) "839680cb-26ea-4862-9e38-123bd8872797"
4) "6baf89c2-e9df-4874-b7ee-0637c6c6e51f"という感じで確認できる。
Queueに溜まったJobを実行する
溜まったJobを実行するので、
を行う。
これをすると、
溜まっているJobが1つずつ実行されて、
Redisクライアントで確認すると、
ZRANGE laravel_horizon:pending_jobs 0 -1結果が、
127.0.0.1:6379> ZRANGE laravel_horizon:pending_jobs 0 -1
(empty array)となるので、
うまく処理できてる。
概念メモ
[ Horizon ] ← 全体の管理者(ダッシュボード付き)
│
├─ [ Supervisor ] ← worker の設定と監督役
│ ├─ worker #1
│ ├─ worker #2
│ └─ worker #3
│
└─(他にも supervisor を作れる)
おすすめ書籍
コメント一覧
コメントはまだありません。




コメントを残す