mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-08 01:37:36 +00:00
78 lines
2.1 KiB
PHP
78 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\AsynchronousOperations\Cron;
|
|
|
|
use Magento\Framework\App\ResourceConnection;
|
|
use Magento\AsynchronousOperations\Api\Data\BulkSummaryInterface;
|
|
use Magento\Framework\EntityManager\MetadataPool;
|
|
use Magento\Framework\Stdlib\DateTime;
|
|
use Magento\Framework\App\Config\ScopeConfigInterface;
|
|
|
|
class BulkCleanup
|
|
{
|
|
/**
|
|
* @var DateTime
|
|
*/
|
|
private $dateTime;
|
|
|
|
/**
|
|
* @var MetadataPool
|
|
*/
|
|
private $metadataPool;
|
|
|
|
/**
|
|
* @var ResourceConnection
|
|
*/
|
|
private $resourceConnection;
|
|
|
|
/**
|
|
* @var ScopeConfigInterface
|
|
*/
|
|
private $scopeConfig;
|
|
|
|
/**
|
|
* @var \Magento\Framework\Stdlib\DateTime\DateTime
|
|
*/
|
|
private $date;
|
|
|
|
/**
|
|
* BulkCleanup constructor.
|
|
* @param MetadataPool $metadataPool
|
|
* @param ResourceConnection $resourceConnection
|
|
* @param DateTime $dateTime
|
|
* @param ScopeConfigInterface $scopeConfig
|
|
* @param DateTime\DateTime $time
|
|
*/
|
|
public function __construct(
|
|
MetadataPool $metadataPool,
|
|
ResourceConnection $resourceConnection,
|
|
DateTime $dateTime,
|
|
ScopeConfigInterface $scopeConfig,
|
|
\Magento\Framework\Stdlib\DateTime\DateTime $time
|
|
) {
|
|
$this->metadataPool = $metadataPool;
|
|
$this->resourceConnection = $resourceConnection;
|
|
$this->dateTime = $dateTime;
|
|
$this->scopeConfig = $scopeConfig;
|
|
$this->date = $time;
|
|
}
|
|
|
|
/**
|
|
* Remove all expired bulks and corresponding operations
|
|
*
|
|
* @return void
|
|
*/
|
|
public function execute()
|
|
{
|
|
$metadata = $this->metadataPool->getMetadata(BulkSummaryInterface::class);
|
|
$connection = $this->resourceConnection->getConnectionByName($metadata->getEntityConnectionName());
|
|
|
|
$bulkLifetime = 3600 * 24 * (int)$this->scopeConfig->getValue('system/bulk/lifetime');
|
|
$maxBulkStartTime = $this->dateTime->formatDate($this->date->gmtTimestamp() - $bulkLifetime);
|
|
$connection->delete($metadata->getEntityTable(), ['start_time <= ?' => $maxBulkStartTime]);
|
|
}
|
|
}
|