Skip to content

Instantly share code, notes, and snippets.

@im-denisenko
Created March 2, 2015 00:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save im-denisenko/0ba9f138d7a0b20c30a6 to your computer and use it in GitHub Desktop.
Save im-denisenko/0ba9f138d7a0b20c30a6 to your computer and use it in GitHub Desktop.
<?php
namespace Realty\Main\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class FakeShowCounterCommand extends ContainerAwareCommand
{
/**
* {@inheritdoc}
*/
protected function configure()
{
$this->setName('fake_show_counter');
$this->setDescription('Emulate page hits');
}
/**
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$connection = $this->getContainer()->get('connection');
$queries = [
'START TRANSACTION;',
'UPDATE `realty_offer` SET `SHOW_COUNTER`=`SHOW_COUNTER`+FLOOR(1+10*0.3*(RAND()+RAND()+RAND())) WHERE RAND() < 0.5 AND DATEDIFF(NOW(), `CREATION_DATE`) BETWEEN 0 AND 5',
'UPDATE `realty_offer` SET `SHOW_COUNTER`=`SHOW_COUNTER`+FLOOR(1+8*0.3*(RAND()+RAND()+RAND())) WHERE RAND() < 0.4 AND DATEDIFF(NOW(), `CREATION_DATE`) BETWEEN 6 AND 10',
'UPDATE `realty_offer` SET `SHOW_COUNTER`=`SHOW_COUNTER`+FLOOR(1+6*0.3*(RAND()+RAND()+RAND())) WHERE RAND() < 0.3 AND DATEDIFF(NOW(), `CREATION_DATE`) BETWEEN 11 AND 15',
'UPDATE `realty_offer` SET `SHOW_COUNTER`=`SHOW_COUNTER`+FLOOR(1+4*0.3*(RAND()+RAND()+RAND())) WHERE RAND() < 0.2 AND DATEDIFF(NOW(), `CREATION_DATE`) BETWEEN 16 AND 20',
'UPDATE `realty_offer` SET `SHOW_COUNTER`=`SHOW_COUNTER`+FLOOR(1+2*0.3*(RAND()+RAND()+RAND())) WHERE RAND() < 0.1 AND DATEDIFF(NOW(), `CREATION_DATE`) BETWEEN 21 AND 30',
'UPDATE `realty_offer` SET `SHOW_COUNTER`=`SHOW_COUNTER`+FLOOR(1+1*0.3*(RAND()+RAND()+RAND())) WHERE RAND() < 0.05 AND DATEDIFF(NOW(), `CREATION_DATE`) >= 30',
'COMMIT;',
];
foreach ($queries as $query) {
$connection->queryExecute($query);
}
$output->writeln('<info>Done</info>');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment