LaravelのQueueについて質問させてください。
Laravel5.4で画像の返還とアップロードを非同期処理にするために、
Controllerで受け付けたあとjobにこのような形で処理を移動しています。
PHP
1//controllerの記載 2 3public function uploadPicture(Request $request, $id) 4 { 5 6 $file = $request->file('file'); 7 $name = md5(sha1(uniqid(mt_rand(), true))).'.'.$file->getClientOriginalExtension(); 8 9 $file->move('/tmp/', $original_name); 10 11 //変数をセットするなどの処理 12 13 $this->dispatch(new ResizeUploadImage($width, $height, $name, $mini_name)); 14 15 return redirect() 16 ->action('BoardController@show', [$id, 'service' => $service,])->with('success', 'トップ画像が更新されました。'); 17}
キューの処理はdatabaseで行なっていて
php artisan queue:table
php artisan migrate
を実行しjob tableもできています。
config/queue.phpは下記の通りセットしています。
'default' => env('QUEUE_DRIVER', 'database'), 'connections' => [ 'database' => [ 'connection' => 'mysql', 'driver' => 'database', 'table' => 'jobs', 'queue' => 'default', 'expire' => 60, ], ]
PHP
1 //app/jobs/ResizeUploadImage 2 3//以下を追記 4use Intervention\Image\Facades\Image; 5use File; 6use Storage; 7 8 9 public function __construct($width, $height, $name, $mini_name) 10 { 11 $this->width = $width; 12 $this->height = $height; 13 $this->name = $name; 14 $this->mini_name = $mini_name; 15 } 16 17 18 public function handle() 19 { 20 //from here to job/ResizeUploadImage 21 22 $point = round((($width/2)-($height/2)), 0, PHP_ROUND_HALF_DOWN); 23 24 Image::make('/tmp/'.$original_name) 25 ->crop($height, $height, $point, 0) 26 ->resize(250, 250) 27 ->save('/tmp/'.$mini_name); 28 29 //upload mini size 30 $s3 = Storage::disk('s3'); 31 $filePath_mini = 'photos/mini/' . $name; 32 $s3->put($filePath_mini, file_get_contents('/tmp/'.$mini_name), 'public'); 33 34 File::delete('/tmp/'.$mini_name); 35 36 //untile here to job/ResizeUploadImage // 37 } 38}
というコードになっていて、
実行するとJobテーブルにレコードも入っています。
しかし
php artisan queue:work
でワーカを起動して処理をしようとすると、
[2017-11-18 23:29:45] Processing: App\Jobs\ResizeUploadImage
というログがターミナルにずっと出続けて一向に処理はされません。
コードの内容、設定で何か問題がありますでしょうか。
ご教示いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/20 01:38