質問: (new App\Jobs\QueueTest($request)); dispatch($log); 参考にですが、viewで以下のように対象ファイルをrequestに設定するようにしています。 {!! Form::open(['url' => '/upload', 'method' => 'post', 'files' => true,'enctype'=>'multipart/form-data']) !!} {!! Form::label('file1', '比較画像', ['class' => 'control-label','height' => '200']) !!} ジョブへのパラメータの渡し方がよくないのでしょうか?
回答: リクエストデータは、Webリクエストに対してルーティングに設定されたコントローラで受け取りますが、キューはサーバーデーモンとして裏方で非同期に起動しているものなのでWebサーバーを介さずリクエストデータを取得できません。 (config/queue.phpのQueue Driverがダミー処理であるsyncでない限り) キューで処理したいファイル加工やファイル転送処理がある場合は、コントローラでは一旦ファイルを一時的に保存して、それからそれを後で処理するためのキューデータを作成し、キューワーカーが処理できるようしてください。 リクエストのコントローラの処理とワーカーの処理が別空間であることを意識してみて下さい。 Laravel 5.5 キュー