/**
  * @param Collection|Subscriber[]
  * @param string[] $events
  */
 protected function replayEvents($projections, $events)
 {
     $eventCount = $this->eventStore->getEventCountByTypes($events);
     $start = 0;
     $take = 1000;
     $this->output->progressStart($eventCount);
     $dispatcher = $this->buildAndRegisterDispatcher($projections);
     while ($start < $eventCount) {
         foreach ($this->eventStore->getEventsByType($events, $start, $take) as $eventRow) {
             $this->dispatchEvent($dispatcher, $eventRow);
         }
         $start += $take;
         $this->output->progressAdvance($take > $eventCount ? $eventCount : $take);
     }
     $this->output->progressFinish();
     $this->line(memory_get_peak_usage(true) / 1024 / 1024 . "mb Peak Usage", false);
 }