/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
try {
echo "Making a go at starting a Thruway worker.\n";
$name = $input->getArgument('name');
$config = $this->getContainer()->getParameter('voryx_thruway');
$loop = $this->getContainer()->get('voryx.thruway.loop');
$kernel = $this->getContainer()->get('wamp_kernel');
$workerAnnotation = $kernel->getResourceMapper()->getWorkerAnnotation($name);
if ($workerAnnotation) {
$realm = $workerAnnotation->getRealm() ?: $config['realm'];
$url = $workerAnnotation->getUrl() ?: $config['url'];
} else {
$realm = $config['realm'];
$url = $config['url'];
}
$transport = new PawlTransportProvider($url);
$client = new Client($realm, $loop);
$client->addTransportProvider($transport);
$kernel->setProcessName($name);
$kernel->setClient($client);
$kernel->setProcessInstance($input->getArgument('instance'));
$client->start();
} catch (\Exception $e) {
$logger = $this->getContainer()->get('logger');
$logger->addCritical("EXCEPTION:" . $e->getMessage());
$output->writeln("EXCEPTION:" . $e->getMessage());
}
}