feat: movie monitoring
This commit is contained in:
@@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Download\Framework\MessageHandler;
|
||||
|
||||
use App\Download\Action\Command\DownloadMediaCommand;
|
||||
use App\Download\Action\Handler\DownloadMediaHandler;
|
||||
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
|
||||
|
||||
#[AsMessageHandler(handles: DownloadMediaCommand::class)]
|
||||
class DownloadMediaMessageHandler
|
||||
{
|
||||
public function __construct(
|
||||
private DownloadMediaHandler $downloadMediaHandler,
|
||||
) {}
|
||||
|
||||
public function __invoke(DownloadMediaCommand $command)
|
||||
{
|
||||
$this->downloadMediaHandler->handle($command);
|
||||
}
|
||||
}
|
||||
29
src/Download/Framework/Scheduler/MovieMonitorDispatcher.php
Normal file
29
src/Download/Framework/Scheduler/MovieMonitorDispatcher.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Download\Framework\Scheduler;
|
||||
|
||||
use App\Download\Action\Command\MonitorMovieCommand;
|
||||
use App\Download\Framework\Repository\MovieMonitorRepository;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\Messenger\MessageBusInterface;
|
||||
use Symfony\Component\Scheduler\Attribute\AsCronTask;
|
||||
|
||||
#[AsCronTask('* * * * *', schedule: 'movie_monitor')]
|
||||
class MovieMonitorDispatcher
|
||||
{
|
||||
public function __construct(
|
||||
private readonly LoggerInterface $logger,
|
||||
private readonly MovieMonitorRepository $movieMonitorRepository,
|
||||
private readonly MessageBusInterface $bus,
|
||||
) {}
|
||||
|
||||
public function __invoke() {
|
||||
$this->logger->info('[MovieMonitorDispatcher] Executing MovieMonitorDispatcher');
|
||||
$monitors = $this->movieMonitorRepository->findBy(['status' => ['New', 'In Progress']]);
|
||||
|
||||
foreach ($monitors as $monitor) {
|
||||
$this->logger->info('[MovieMonitorDispatcher] Dispatching MovieMonitorCommand for ' . $monitor->getTitle());
|
||||
$this->bus->dispatch(new MonitorMovieCommand($monitor->getId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user