Created new event listeners to send events to redis pub/sub

This commit is contained in:
Alejandro Celaya
2022-07-25 18:23:13 +02:00
parent ceabb5ab2c
commit eff50ca202
10 changed files with 53 additions and 9 deletions

View File

@@ -24,12 +24,14 @@ return [
EventDispatcher\Event\VisitLocated::class => [
EventDispatcher\Mercure\NotifyVisitToMercure::class,
EventDispatcher\RabbitMq\NotifyVisitToRabbitMq::class,
EventDispatcher\RedisPubSub\NotifyVisitToRedis::class,
EventDispatcher\NotifyVisitToWebHooks::class,
EventDispatcher\UpdateGeoLiteDb::class,
],
EventDispatcher\Event\ShortUrlCreated::class => [
EventDispatcher\Mercure\NotifyNewShortUrlToMercure::class,
EventDispatcher\RabbitMq\NotifyNewShortUrlToRabbitMq::class,
EventDispatcher\RedisPubSub\NotifyNewShortUrlToRedis::class,
],
],
],
@@ -42,6 +44,8 @@ return [
EventDispatcher\Mercure\NotifyNewShortUrlToMercure::class => ConfigAbstractFactory::class,
EventDispatcher\RabbitMq\NotifyVisitToRabbitMq::class => ConfigAbstractFactory::class,
EventDispatcher\RabbitMq\NotifyNewShortUrlToRabbitMq::class => ConfigAbstractFactory::class,
EventDispatcher\RedisPubSub\NotifyVisitToRedis::class => ConfigAbstractFactory::class,
EventDispatcher\RedisPubSub\NotifyNewShortUrlToRedis::class => ConfigAbstractFactory::class,
EventDispatcher\UpdateGeoLiteDb::class => ConfigAbstractFactory::class,
],
@@ -58,6 +62,12 @@ return [
EventDispatcher\RabbitMq\NotifyNewShortUrlToRabbitMq::class => [
EventDispatcher\CloseDbConnectionEventListenerDelegator::class,
],
EventDispatcher\RedisPubSub\NotifyVisitToRedis::class => [
EventDispatcher\CloseDbConnectionEventListenerDelegator::class,
],
EventDispatcher\RedisPubSub\NotifyNewShortUrlToRedis::class => [
EventDispatcher\CloseDbConnectionEventListenerDelegator::class,
],
EventDispatcher\NotifyVisitToWebHooks::class => [
EventDispatcher\CloseDbConnectionEventListenerDelegator::class,
],
@@ -107,6 +117,8 @@ return [
ShortUrl\Transformer\ShortUrlDataTransformer::class,
Options\RabbitMqOptions::class,
],
EventDispatcher\RedisPubSub\NotifyVisitToRedis::class => [],
EventDispatcher\RedisPubSub\NotifyNewShortUrlToRedis::class => [],
EventDispatcher\UpdateGeoLiteDb::class => [GeolocationDbUpdater::class, 'Logger_Shlink'],
],

View File

@@ -19,6 +19,7 @@ enum EnvVars: string
case GEOLITE_LICENSE_KEY = 'GEOLITE_LICENSE_KEY';
case REDIS_SERVERS = 'REDIS_SERVERS';
case REDIS_SENTINEL_SERVICE = 'REDIS_SENTINEL_SERVICE';
case REDIS_PUB_SUB_ENABLED = 'REDIS_PUB_SUB_ENABLED';
case MERCURE_PUBLIC_HUB_URL = 'MERCURE_PUBLIC_HUB_URL';
case MERCURE_INTERNAL_HUB_URL = 'MERCURE_INTERNAL_HUB_URL';
case MERCURE_JWT_SECRET = 'MERCURE_JWT_SECRET';

View File

@@ -25,9 +25,9 @@ class NotifyVisitToMercure
) {
}
public function __invoke(VisitLocated $shortUrlLocated): void
public function __invoke(VisitLocated $visitLocated): void
{
$visitId = $shortUrlLocated->visitId;
$visitId = $visitLocated->visitId;
/** @var Visit|null $visit */
$visit = $this->em->find(Visit::class, $visitId);

View File

@@ -26,13 +26,13 @@ class NotifyVisitToRabbitMq
) {
}
public function __invoke(VisitLocated $shortUrlLocated): void
public function __invoke(VisitLocated $visitLocated): void
{
if (! $this->options->isEnabled()) {
return;
}
$visitId = $shortUrlLocated->visitId;
$visitId = $visitLocated->visitId;
$visit = $this->em->find(Visit::class, $visitId);
if ($visit === null) {

View File

@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace Shlinkio\Shlink\Core\EventDispatcher\RedisPubSub;
use Shlinkio\Shlink\Core\EventDispatcher\Event\ShortUrlCreated;
class NotifyNewShortUrlToRedis
{
public function __invoke(ShortUrlCreated $shortUrlCreated): void
{
// TODO: Implement __invoke() method.
}
}

View File

@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace Shlinkio\Shlink\Core\EventDispatcher\RedisPubSub;
use Shlinkio\Shlink\Core\EventDispatcher\Event\VisitLocated;
class NotifyVisitToRedis
{
public function __invoke(VisitLocated $visitLocated): void
{
// TODO: Implement __invoke() method.
}
}