РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1388 of 1392 menu

Метод push

Метод push класса Queue применяется для добавления задачи в очередь. Первым параметром передаётся имя класса задачи или объект задачи, вторым - данные для задачи (массив параметров), третьим - имя очереди.

Синтаксис

<?php Queue::push($job, $data = [], $queue = null); ?>

Пример

Давайте создадим простую задачу для отправки email-уведомлений:

<?php namespace AppJobs; use IlluminateContractsQueueShouldQueue; use IlluminateQueueInteractsWithQueue; class SendEmailJob implements ShouldQueue { use InteractsWithQueue; protected $email; protected $message; public function __construct($email, $message) { $this->email = $email; $this->message = $message; } public function handle() { // Отправка email echo "Sending email to " . $this->email; } } ?>

Теперь добавим эту задачу в очередь:

<?php namespace AppHttpControllers; use AppJobsSendEmailJob; use IlluminateSupportFacadesQueue; class EmailController extends Controller { public function send() { $job = new SendEmailJob('user@example.com', 'Welcome!'); Queue::push($job); return "Job pushed to queue"; } } ?>

Пример

Добавим задачу в очередь с дополнительными данными:

<?php namespace AppHttpControllers; use AppJobsProcessDataJob; use IlluminateSupportFacadesQueue; class TaskController extends Controller { public function process() { $data = ['id' => 1, 'status' => 'active']; Queue::push('AppJobsProcessDataJob', $data); return "Job pushed with data"; } } ?>

Пример

Добавим задачу в определённую очередь:

<?php namespace AppHttpControllers; use AppJobsGenerateReportJob; use IlluminateSupportFacadesQueue; class ReportController extends Controller { public function generate() { $reportJob = new GenerateReportJob(['type' => 'daily']); Queue::push($reportJob, [], 'reports'); return "Report generation queued"; } } ?>

Пример

Использование метода push с задержкой:

<?php namespace AppHttpControllers; use AppJobsDelayedJob; use IlluminateSupportFacadesQueue; class DelayedController extends Controller { public function schedule() { $job = new DelayedJob('scheduled task'); Queue::later(60, $job); return "Job scheduled for later"; } } ?>

Смотрите также

  • метод later,
    который добавляет задачу с задержкой
  • метод size,
    который возвращает размер очереди
  • метод dispatch,
    который диспатчит задачу в очередь
  • класс handle,
    который содержит логику выполнения задачи
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить