protected function execute($arguments = array(), $options = array()) { $context = sfContext::createInstance($this->configuration); if ($options['loop']) { $max_load = (double) $options['maxload']; echo "maxload: {$max_load}\n"; do { $lastline = system('php symfony policat:email-hash-worker'); echo PHP_EOL; $load = sys_getloadavg(); $maxwait = 250; $waited = 0; while ($load[0] > $max_load && $maxwait--) { sleep(1); $waited++; $load = sys_getloadavg(); } if ($waited) { echo "waited {$waited} s\n"; } usleep(500000); // 0.5s } while (strpos($lastline, 'nothing to do') === false); } else { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'])->getConnection(); $table = PetitionSigningTable::getInstance(); $con = $table->getConnection(); $petition_signings = $table->createQuery('ps')->select('ps.id, ps.email')->where('ps.status = ? and ps.email_hash IS NULL', PetitionSigning::STATUS_VERIFIED)->limit(100)->execute(array(), Doctrine_Core::HYDRATE_ARRAY_SHALLOW); $count = count($petition_signings); if ($count) { echo "processing {$count} signings..."; foreach ($petition_signings as $row) { $con->exec('UPDATE petition_signing SET email_hash = ? WHERE id = ?', array(UtilEmailHash::hash($row['email']), $row['id'])); } echo " done."; } else { echo "nothing to do."; } } }
protected function execute($arguments = array(), $options = array()) { $email = $arguments['email']; printf("TEST: %s\n", UtilEmailHash::test() ? 'ok' : 'FAILED!'); printf("%s: %s\n", $email, UtilEmailHash::hash($email)); }
public function getEmailHashAuto() { return $this->getEmailHash() ?: UtilEmailHash::hash($this->getEmail()); }