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());
 }