31 lines
873 B
PHP
31 lines
873 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace AeonDumpManager\MessageQueue\Handler;
|
|
|
|
use AeonDumpManager\MessageQueue\Message\CreateDumpMessage;
|
|
use AeonDumpManager\Service\DumpJobStatusService;
|
|
use AeonDumpManager\Service\DumpService;
|
|
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
|
|
|
|
#[AsMessageHandler]
|
|
class CreateDumpHandler
|
|
{
|
|
public function __construct(
|
|
private readonly DumpService $dumpService,
|
|
private readonly DumpJobStatusService $jobStatus,
|
|
) {
|
|
}
|
|
|
|
public function __invoke(CreateDumpMessage $message): void
|
|
{
|
|
$jobId = $message->getJobId();
|
|
$this->jobStatus->markRunning($jobId);
|
|
|
|
try {
|
|
$this->dumpService->createAsync($jobId, $this->jobStatus);
|
|
} catch (\Throwable $exception) {
|
|
$this->jobStatus->markFailed($jobId, $exception->getMessage());
|
|
}
|
|
}
|
|
}
|