Люмену не хватает памяти при вызове диспетчеризации

Я получаю следующую ошибку при попытке позвонить dispatch в моем проекте Lumen:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 262144 bytes) in /var/www/vendor/illuminate/container/Container.php on line 707

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 262144 bytes) in Unknown on line 0

Моей первой мыслью было увеличение лимита памяти в php.ini до 1G, но процесс продолжает поглощать всю память приложения, а затем выдает вышеуказанную ошибку.

Внутри моего контроллера у меня есть следующий фрагмент кода:

private function attemptCapture(array $options = [])
{
$response = array_merge(
[
'code' => 200,
'message' => '',
],
[]
);

dispatch(new ExampleJob());

return $response;
}

ExampleJob.php

namespace App\Jobs;

use Illuminate\Support\Facades\Log;

class ExampleJob extends Job
{
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
// dd('got here');  // this gets called
}

/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Log::info('got here');
}
}

Я использую Laravel по умолчанию queue.php в моем /config/queue.php файл и я использую redis как QUEUE_DRIVER и я использую default как QUEUE_REDIS_CONNECTION как я предполагаю, что будет использовать соединение, которое я установил в моем redis['default'] в database.php

Я озадачен тем, почему это не удается, я получаю те же результаты, даже если я использую sync водитель, отправка просто, кажется, облажался

РЕДАКТИРОВАТЬ После дальнейших экспериментов кажется, что когда я звоню dispatch из контроллера (передаваемого из HTTP-маршрута) диспетчер попытается снова вызвать маршрут вместо того, чтобы запустить задание или отправить задание в очередь.

Этот код вызывается в цепочке отправки:

protected function callActionOnArrayBasedRoute($routeInfo)
{
$action = $routeInfo[1];

if (isset($action['uses'])) {
return $this->prepareResponse($this->callControllerAction($routeInfo));
}

foreach ($action as $value) {
if ($value instanceof Closure) {
$closure = $value->bindTo(new RoutingClosure);
break;
}
}

try {
return $this->prepareResponse($this->call($closure, $routeInfo[2]));
} catch (HttpResponseException $e) {
return $e->getResponse();
}
}

У которого есть: array(1) { ["uses"]=> string(52) "App\Http\Controllers\Operator\CaptureController@test" } в качестве полезной нагрузки, которую он получает.

Я не пытаюсь отправить новое действие @test, я хочу отправить ExampleJob

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]