/** * @param Request $request * @param WorkerInterface $worker * @param Container $laravel * @return Response * @throws FailedJobException */ public function queue(Request $request, WorkerInterface $worker, Container $laravel) { //$this->validateHeaders($request); $body = $this->validateBody($request, $laravel); $job = new AwsJob($laravel, $request->header('X-Aws-Sqsd-Queue'), ['Body' => $body, 'MessageId' => $request->header('X-Aws-Sqsd-Msgid'), 'ReceiptHandle' => false, 'Attributes' => ['ApproximateReceiveCount' => $request->header('X-Aws-Sqsd-Receive-Count')]]); try { $worker->process($request->header('X-Aws-Sqsd-Queue'), $job, ['maxTries' => 0, 'delay' => 0]); } catch (\Exception $e) { throw new FailedJobException('Worker failed executing the job', 0, $e); } return $this->response(['Processed ' . $job->getJobId()]); }