Files
AeonDumpManager/src/MessageQueue/Handler/CreateDumpHandler.php
T
haylanandClaude Bot 8efaef2042 feat(plugin): align with Shopware plugin guidelines
- add dedicated monolog channel aeon_dump_manager and log dump jobs
- migrate services.xml/routes.php to YAML
- require PHP ^8.2
- add extension icon and .config/shopware-extension.yml
- drop empty lifecycle overrides

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 23:26:21 +02:00

35 lines
1.1 KiB
PHP

<?php declare(strict_types=1);
namespace AeonDumpManager\MessageQueue\Handler;
use AeonDumpManager\MessageQueue\Message\CreateDumpMessage;
use AeonDumpManager\Service\DumpJobStatusService;
use AeonDumpManager\Service\DumpService;
use Psr\Log\LoggerInterface;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
#[AsMessageHandler]
class CreateDumpHandler
{
public function __construct(
private readonly DumpService $dumpService,
private readonly DumpJobStatusService $jobStatus,
private readonly LoggerInterface $logger,
) {
}
public function __invoke(CreateDumpMessage $message): void
{
$jobId = $message->getJobId();
$this->jobStatus->markRunning($jobId);
$this->logger->info('Dump job started.', ['jobId' => $jobId]);
try {
$this->dumpService->createAsync($jobId, $this->jobStatus);
} catch (\Throwable $exception) {
$this->logger->error('Dump job failed.', ['jobId' => $jobId, 'exception' => $exception]);
$this->jobStatus->markFailed($jobId, $exception->getMessage());
}
}
}