実現したいこと
前提
Laravelを使ってシステムを作っています。
PDFをjpgに変換するコードを書いていたのですが、
処理時間が長くなる為にJobとQueueを使って非同期処理を行おうと思いました。
以下が実際のJobのコードです。
<?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 Imagick; class CreateOCRRecognitionResultJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. */ public function __construct() { } /** * Execute the job. */ public function handle(): void { $imagick = new Imagick(); } }
use Imagick;としていますが、Jobを実行すると以下のようなエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Class "Imagick" not found {"exception":"[object] (Error(code: 0): Class \"Imagick\" not found at ...
試したこと
- Mac側にもImagiMagickをインストールしても同じでした。
- intervention/imageをインストールして、
new Image()として結果は同じでした。
Jobの中では、importができないのでしょうか?
補足情報(FW/ツールのバージョンなど)
MacのDockerDesktopで以下のリポジトリを使い、Laravelを動かしています。
https://github.com/ucan-lab/docker-laravel
- 使用PC:MacBook Air M2 2022
- OSバージョン:macOS Ventura 13.5.1
- Docker Desktop:4.23.0
- フレームワーク:Laravel v10.10
- PHPバージョン:8.2

0 コメント