deblan.io-murph/src/MessageHandler/PageViewMessageHandler.php
2023-09-23 00:03:48 +02:00

38 lines
913 B
PHP

<?php
namespace App\MessageHandler;
use App\Message\PageViewMessage;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
use App\Api\InfluxDB;
use InfluxDB2\WriteType;
use InfluxDB2\Point;
final class PageViewMessageHandler implements MessageHandlerInterface
{
public function __construct(protected InfluxDB $influxDB)
{
}
public function __invoke(PageViewMessage $message)
{
if (!$this->influxDB->isAvailable()) {
return;
}
$client = $this->influxDB->getClient();
$writeApi = $client->createWriteApi(['writeType' => WriteType::SYNCHRONOUS]);
$pageView = new Point('page_view');
$pageView
->addTag('request', 'view')
->addField('value', 1)
->time($message->getTime())
;
$writeApi->write($pageView);
$writeApi->close();
$client->close();
}
}