#!/usr/bin/env php
<?php

use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent;
use Symfony\Component\Messenger\Worker;
use Tests\Etrias\AsyncBundle\Fixtures\EventbusSetup;

require_once(__DIR__."/../../../vendor/autoload.php");

$host = $argv[1] ?? 'nats';
$delay = $argv[2] ?? 0;

if ($delay > 0) {
    sleep($delay);
}

$eventBusSetup = new EventbusSetup($host);

$throwable = null;
$failedListener = function (WorkerMessageFailedEvent $event) use (&$throwable) {
    $throwable = $event->getThrowable();
};
$eventBusSetup->getEventDispatcher()->addListener(WorkerMessageFailedEvent::class, $failedListener);

$worker = new Worker(
    $eventBusSetup->getTransports(),
    $eventBusSetup->getMessageBus(),
    $eventBusSetup->getEventDispatcher()
);

$worker->run();