src/Core/System/SalesChannel/Context/Cleanup/CleanupSalesChannelContextTaskHandler.php line 36
<?php declare(strict_types=1);
namespace Shopware\Core\System\SalesChannel\Context\Cleanup;
use Doctrine\DBAL\Connection;
use Shopware\Core\Defaults;
use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
use Shopware\Core\Framework\Log\Package;
use Shopware\Core\Framework\MessageQueue\ScheduledTask\ScheduledTaskHandler;
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
/**
* @internal
*/
#[AsMessageHandler(handles: CleanupSalesChannelContextTask::class)]
#[Package('sales-channel')]
final class CleanupSalesChannelContextTaskHandler extends ScheduledTaskHandler
{
/**
* @internal
*/
public function __construct(
EntityRepository $repository,
private readonly Connection $connection,
private readonly int $days
) {
parent::__construct($repository);
}
public function run(): void
{
$time = new \DateTime();
$time->modify(sprintf('-%s day', $this->days));
$this->connection->executeStatement(
'DELETE FROM sales_channel_api_context WHERE updated_at <= :timestamp',
['timestamp' => $time->format(Defaults::STORAGE_DATE_TIME_FORMAT)]
);
}
}