40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace External\VarioBundle\Command;
|
|
|
|
use External\VarioBundle\Util\VarioDelayedUpdate;
|
|
use Symfony\Component\Console\Command\Command;
|
|
use Symfony\Component\Console\Input\InputInterface;
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
|
|
|
class DelayedUpdateCommand extends Command
|
|
{
|
|
protected static $defaultName = 'vario:delayed_update';
|
|
|
|
/** @var VarioDelayedUpdate */
|
|
private $varioDelayedUpdate;
|
|
|
|
/** @required */
|
|
public function setVarioDelayedUpdate(VarioDelayedUpdate $varioDelayedUpdate): void
|
|
{
|
|
$this->varioDelayedUpdate = $varioDelayedUpdate;
|
|
}
|
|
|
|
protected function execute(InputInterface $input, OutputInterface $output)
|
|
{
|
|
while (true) {
|
|
sqlGetConnection()->connect();
|
|
|
|
$output->writeln('Processing batch of 100 items...');
|
|
$processed = $this->varioDelayedUpdate->processDelayedUpdate(100);
|
|
if ($processed <= 0) {
|
|
$output->writeln('Nothing to process, sleeping for 300 seconds...');
|
|
sqlGetConnection()->close();
|
|
sleep(300);
|
|
}
|
|
}
|
|
}
|
|
}
|