Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 21.07.2016 17:52:49

Как удалить задание из очереди. ??

Для того чтобы удалить задание из очереди (согластно документации), нужно добавить в команду трейт Illuminate\Queue\InteractsWithQueue, который предоставляет методы delete и release.

Потом  в методе handle самого Job можно удалить задачу. Тут все хорошо и верно работает.

Вопрос как удалить задачу из клаcса который  $handler = new \App\Lib\NewClass(); ?

<?php

namespace App\Jobs;

use App\Jobs\Job;
use Illuminate\Contracts\Bus\SelfHandling;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Queue;

class MyJob extends Job implements SelfHandling, ShouldQueue
{


    use InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
    }

    /**
     * Execute the command.
     *
     * @return void
     */
    public function handle()
    {

        $handler = new \App\Lib\Cashback\NewClass();
        return;
    }

    public function failed()
    {
        Log::info("failed:", (array) $this->toArray());
    }
}


class NewClass 
{
    protected $handlers = [];
    public function setDelete()
    {
        $this->delete();
    }
}

Те я хочу в класе NewContainer сделать  $This->delete(), как мне это сделать, при условии что NewContainer я не хочу наследовать от  Job клаcса.


Добавить
    use InteractsWithQueue, Queueable, SerializesModels;

в NewClass не получится, так как в нем нету обекта класа Job, вариант наследовать мне не подходить. Возможно както можно получить объект класа Job??

Изменено s_vadim (21.07.2016 18:01:17)

Не в сети

Подвал раздела