Как передать свои данные в очередь queue в laravel 5.3?

Пользователь

от eudora , в категории: PHP , 2 года назад

Как передать свои данные в очередь queue в laravel 5.3?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от elda , 2 года назад

@eudora 

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class ExampleJob extends Job
{
    protected $data;

    public function __construct($data)
    {
        $this->data = $data;
    }

    public function handle()
    {
        // Здесь вы можете использовать данные, переданные в конструктор.
    }
}


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

1
2
3
$data = ['key' => 'value'];

dispatch(new ExampleJob($data));


В дальнейшем этот класс будет выполнен в фоновом режиме в очереди.

Пользователь

от raina , год назад

@eudora 

Не забудьте также настроить свою очередь в Laravel 5.3. Вы можете выбрать один из драйверов очереди, таких как database, beanstalkd, redis и др., и настроить его в файле .env или в файле config/queue.php.


Пример настройки очереди для использования драйвера базы данных (database) в файле .env:


QUEUE_DRIVER=database


После настройки очереди вы можете использовать метод dispatch для добавления задачи в очередь, как показано выше. Когда будет запущен обработчик очереди (например, через команду в Artisan), задачи будут извлечены из очереди и выполнены.