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

Команда make:job

Команда make:job создаёт новый класс задачи в директории app/Jobs. Задачи используются для выполнения отложенных или фоновых операций через очереди. Первым параметром передаётся имя класса задачи. По умолчанию класс реализует интерфейс ShouldQueue, что позволяет отправлять задачу в очередь. Метод handle выполняется при обработке задачи.

Синтаксис

php artisan make:job JobName

Пример

Создадим задачу для отправки уведомления пользователю:

<?php namespace AppJobs; use AppModelsUser; use IlluminateBusQueueable; use IlluminateContractsQueueShouldQueue; use IlluminateQueueInteractsWithQueue; use IlluminateQueueSerializesModels; class SendNotification implements ShouldQueue { use InteractsWithQueue, Queueable, SerializesModels; protected $user; protected $message; public function __construct(User $user, $message) { $this->user = $user; $this->message = $message; } public function handle() { // Logic to send notification echo "Notification sent to: " . $this->user->email; echo "Message: " . $this->message; } } ?>

Теперь используем эту задачу в контроллере:

<?php namespace AppHttpControllers; use AppJobsSendNotification; use AppModelsUser; class UserController extends Controller { public function notifyUser($id) { $user = User::find($id); $message = "Welcome to our application!"; SendNotification::dispatch($user, $message); echo "Job dispatched successfully"; } } ?>

Результат выполнения кода при обработке очереди:

"Notification sent to: user@example.com" "Message: Welcome to our application!"

Пример

Создадим задачу для синхронизации данных с внешним API:

<?php namespace AppJobs; use IlluminateBusQueueable; use IlluminateContractsQueueShouldQueue; use IlluminateQueueInteractsWithQueue; use IlluminateQueueSerializesModels; use IlluminateSupportFacadesLog; class SyncApiData implements ShouldQueue { use InteractsWithQueue, Queueable, SerializesModels; protected $endpoint; protected $data; public function __construct($endpoint, $data = []) { $this->endpoint = $endpoint; $this->data = $data; } public function handle() { // Simulate API sync $res = "Syncing data to endpoint: " . $this->endpoint; Log::info($res); foreach ($this->data as $key => $value) { echo "Field: " . $key . " => Value: " . $value; } } } ?>

Отправим задачу в очередь для синхронизации:

<?php namespace AppHttpControllers; use AppJobsSyncApiData; class ApiController extends Controller { public function sync() { $data = ['id' => 1, 'name' => 'article', 'status' => 'active']; SyncApiData::dispatch('/api/v1/sync', $data); echo "API sync job dispatched"; } } ?>

Результат выполнения кода при обработке очереди:

"Field: id => Value: 1" "Field: name => Value: article" "Field: status => Value: active"

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

  • команда make-model,
    которая создаёт новый класс модели
  • команда make-controller,
    которая создаёт новый класс контроллера
  • команда make-command,
    которая создаёт новую консольную команду
  • команда queue-work,
    которая запускает обработчик очереди
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить