Laravel 5.2 Удалить очередь в Job

В контроллере:

$smsData = [
'number'    =>  $customer->phone,
'message'   =>  'Test',
];

$job = (new SendMessage($smsData))->delay(env('DELAY_QUEUE'))->onQueue(env('SMS_QUEUE'));

$this->dispatch($job);

Класс SendMessage:

<?php

namespace App\Jobs;

use App\Jobs\Job;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
//use Guzzle\Http\Client;

class SendMessage extends Job implements ShouldQueue {

protected $data, $url;

use InteractsWithQueue, SerializesModels;

public function __construct(array $data) {
$this->data = $data;
$this->url = 'https://reguler.zenziva.net/apps/smsapi.php?userkey=' . env('ZENZIVA_USERKEY') . '&passkey=' . env('ZENZIVA_PASSKEY');
}

public function handle() {
$client = new \GuzzleHttp\Client();
$smsData = $this->data;
$res = $client->request('GET', $this->url . '&nohp=' . $smsData['number'] . '&pesan=' . $smsData['message']);
if ($res->getStatusCode() !== 200) { \Log::info($res->getBody()); }
$this->delete();
return \Response::json(['type' => 'success'], 200);
}

}

SMS действительно проходит, но очередь не удаляется из железа (таким образом отправляя несколько одинаковых SMS, возвращая НИКАКОГО КОДА ОТВЕТА).

Как ни странно, если я пропущу запрос на жрет, очередь удаляется из железа, поэтому POST возвращает ответ 200.

Есть идеи, как это исправить?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]