Laravel создать работу в очереди - PullRequest
0 голосов
/ 12 сентября 2018

Я сталкиваюсь с проблемой на Laravel 5.7 с заданиями и QUEUE,

Задание обрабатывается, но не заносится в очередь, я не вижу ничего в базе данных - однако, я упомянул выигрыш, чтозадание выполнено без проблем, но область должна быть в очереди, пожалуйста.

.env

QUEUE_DRIVER=database

Задание

    class CreateApplication implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $value;
    protected $value1;
    protected $value2;
    protected $value3;

    public $tries = 5;

    public function __construct($value, $value1, $value2, $value3)
    {
        $this->value = $value;
        $this->value1 = $value1;
        $this->value2 = $value2;
        $this->value3 = $value4;
    }

    public function handle()
    {
        $url = 'https://somewhere';

        $client = new \GuzzleHttp\Client;
        $response = $client->post($url, [
                'form_params' => [ 
                    'session' => $this->value,
                    'appid' => $this->value1,
                    'env' => $this->value2,
                    'nodes' => $this->value3
                ]
        ]);

        $response = json_decode($response->getBody(), true);
        return $response;
    }
}

Контроллер

use App\Jobs\CreateApplication;
...
CreateApplication::dispatch($value, $value1, $value2, $value3)->onQueue('processing');

Терминал

php artisan queue:listen

php artisan queue:table
php artisan queue:failed-table

Migrating: 2018_09_12_182619_create_jobs_table
Migrated:  2018_09_12_182619_create_jobs_table
Migrating: 2018_09_12_191537_create_failed_jobs_table
Migrated:  2018_09_12_191537_create_failed_jobs_table

После нескольких попыток вообще нет данных в базе данных, ни в обеих таблицах.

Любой совет, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Проблема была связана с файлом .env на

QUEUE_DRIVER=database

Как он выглядит на Laravel 5.7, он должен быть

QUEUE_CONNECTION=database
0 голосов
/ 12 сентября 2018

Я считаю, что ваш контроллер должен делать:

CreateApplication::dispatch($value, $value1, $value2, $value3)->onQueue('processing');

У класса Job нет обработчика.

...