Я хотел бы проверить неисправную функцию класса Listener. Я не знаю, с чего начать, стоит ли использовать макеты или go через Queue :: fake ()?
в документации laravel, что мне мало помогает. Это не полный, просто минимум, чтобы начать с.
Кто-то, чтобы помочь мне! Спасибо
Это мой класс слушателя
namespace App\Listeners;
use App\Events\Order;
use App\Models\Product;
use App\Services\XMLService;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Log;
class CheckXml implements ShouldQueue
{
use InteractsWithQueue;
/**
* The number of seconds the job can run before timing out.
*
* @var int
*/
public $timeout = 300;
/** @var \App\Services\XMLService */
private $xmlServer;
/** @var \App\Models\Order */
private $order;
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
$this->xmlServer = new XMLService();
}
/**
* Handle the event.
*
* @param Order $event
* @return void
*/
public function handle(Order $event)
{
$order = $event->order;
collect($event->products)->each(function (Product $p) use ($order) {
try {
$xml = $this->xmlServer::createXml($order, $p);
} catch (AdheseException $exception) {
throw new \Exception('Error', 500);
}
$this->adServer->post("post.do", $xml);
});
}
/**
* Handle a job failure.
*
* @param \App\Events\Order $event
* @param \Exception $exception
* @return void
*/
public function failed(CRMOrder $event, $exception)
{
if ($exception->getCode() === 502) {
$this->release();
}
if ($this->attempts() === 3) {
Log::stack(['slack'])->critical('502 error', [
'event' => $event, 'exception' => $exception
]);
}
}
}