Проверить состояние возврата очереди - PullRequest
0 голосов
/ 13 февраля 2019

Я работаю с функцией очереди Laravel 4.2.Прямо сейчас у меня есть функция, которая будет обрабатывать данные, а затем возвращать результат в функцию.Моя проблема в том, как я могу проверить статус, который вернулся из очереди?

Код

Функция контроллера

public function destroy($id, $message = '')
    {
        //Calling queue
        Queue::push('InvoiceQueue@delete_invoice', [
            'id' => $id,
            'Class' => $this->Class,

        ]);
        //continue the function after returned from the queue 

        //Do validation based on queue returned status
        $instance = $this->Class;
        $record = $instance::findOrFail($id);

        //Restore the DB if queue returned an error
        if ($record->restore()) {

        }

        //Delete the DB if queue process working fine
        else {

        return parent::destroy($id, trans("$this->class.invoice"));
     }
    }

Функция очереди

public function delete_invoice($job, $data)
    {
        try {
            return DB::transaction(function ()use ($job,$data) {

            //Doing some process here, go to Catch if an error

            });
        } catch (TransactionException $e) {

            return Response::json(['errors' => array_flatten($e->getErrors())], 400);
        }
    }

Я не уверен, как выполнить проверку в функции контроллера на основев очередь вернул результат.Приведенный выше код всегда выполняет restore() и никогда не обращается к оператору else.

...