setThreshold($threshold); $this->setSleepTime($sleep); $this->_sleeper = $sleeper; } /** * Set the number of emails to send before restarting. * * @param integer $threshold */ public function setThreshold($threshold) { $this->_threshold = $threshold; } /** * Get the number of emails to send before restarting. * * @return int */ public function getThreshold() { return $this->_threshold; } /** * Set the number of seconds to sleep for during a restart. * * @param integer $sleep time */ public function setSleepTime($sleep) { $this->_sleep = $sleep; } /** * Get the number of seconds to sleep for during a restart. * * @return int */ public function getSleepTime() { return $this->_sleep; } /** * Invoked immediately before the Message is sent. * * @param Swift_Events_SendEvent $evt */ public function beforeSendPerformed(Swift_Events_SendEvent $evt) { } /** * Invoked immediately after the Message is sent. * * @param Swift_Events_SendEvent $evt */ public function sendPerformed(Swift_Events_SendEvent $evt) { ++$this->_counter; if ($this->_counter >= $this->_threshold) { $transport = $evt->getTransport(); $transport->stop(); if ($this->_sleep) { $this->sleep($this->_sleep); } $transport->start(); $this->_counter = 0; } } /** * Sleep for $seconds. * * @param integer $seconds */ public function sleep($seconds) { if (isset($this->_sleeper)) { $this->_sleeper->sleep($seconds); } else { sleep($seconds); } } }