UpdateSubscriptionsCommand now uses ProgressBar.

This commit is contained in:
Alexey Skobkin 2017-01-09 05:35:18 +03:00
parent a6ac3757b6
commit 5bf20066fa
2 changed files with 18 additions and 1 deletions

View File

@ -22,7 +22,7 @@ monolog:
console:
type: console
verbosity_levels:
VERBOSITY_NORMAL: INFO
VERBOSITY_NORMAL: WARNING
channels: [!event, !doctrine]
# uncomment to get logging in your browser
# you may have to allow bigger header sizes in your Web server configuration

View File

@ -10,6 +10,7 @@ use Skobkin\Bundle\PointToolsBundle\Repository\UserRepository;
use Skobkin\Bundle\PointToolsBundle\Service\SubscriptionsManager;
use Skobkin\Bundle\PointToolsBundle\Service\UserApi;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
@ -51,6 +52,11 @@ class UpdateSubscriptionsCommand extends ContainerAwareCommand
*/
private $subscriptionManager;
/**
* @var ProgressBar
*/
private $progress;
public function setLogger(LoggerInterface $logger)
{
@ -118,9 +124,14 @@ class UpdateSubscriptionsCommand extends ContainerAwareCommand
return 1;
}
$this->progress = new ProgressBar($output);
$this->progress->setFormat('debug');
// Beginning transaction for all changes
$this->em->beginTransaction();
$this->progress->setMessage('Getting service subscribers');
try {
$usersForUpdate = $this->getUsersForUpdate($appUserId);
} catch (\Exception $e) {
@ -136,9 +147,13 @@ class UpdateSubscriptionsCommand extends ContainerAwareCommand
}
$this->logger->info('Processing users subscribers');
$this->progress->setMessage('Processing users subscribers');
$this->progress->start(count($usersForUpdate));
$this->updateUsersSubscribers($usersForUpdate);
$this->progress->finish();
// Flushing all changes at once to database
$this->em->flush();
$this->em->commit();
@ -192,6 +207,8 @@ class UpdateSubscriptionsCommand extends ContainerAwareCommand
);
}
$this->progress->advance();
usleep($this->apiDelay);
}
}