deblan.io-murph/src/MessageHandler/PageViewMessageHandler.php
2025-02-24 11:40:17 +01:00

35 lines
904 B
PHP

<?php
namespace App\MessageHandler;
use App\Api\InfluxDB;
use App\Message\PageViewMessage;
use InfluxDB2\Point;
use InfluxDB2\WriteType;
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
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();
}
}